autodesk-forge - 获得具有授权码授予的 3-Leged Token 会给出错误 AUTH-004
问题描述
在我们的应用程序中,我们有一个 Angular 前端应用程序,它具有用于 BIM 360 文档的 Autodesk 登录。用户登录前端后,我们从 Autodesk 检索 3 条授权码并将其传递给 C# 后端,我们使用该代码获取 access_token 和刷新令牌。我们正在使用它来获取授权码 -
https://developer.api.autodesk.com/authentication/v1/authorize?response_type=code&client_id={client_Id}&redirect_uri={callbakcurl}&scope=data:read
使用它从代码中获取 access_token -
https://developer.api.autodesk.com/authentication/v1/gettoken
我们收到以下错误 -
{
"developerMessage": "The authorization code/refresh token is expired or invalid/redirect_uri must have the same value as in the authorization request.",
"errorCode": "AUTH-004",
"more info": "https://forge.autodesk.com/en/docs/oauth/v2/developers_guide/error_handling/"
}
我们确保我们的redirect_url 正确/相同以获取授权码并获取access_token。谁能帮我知道这个授权码的有效期是多久?
解决方案
有几件事要检查:
- 正如@KingJ 已经提到的,确保您的重定向 URL 是 url 编码的;范围相同,我相信
:
符号(如果有多个范围则为空格)也应该被编码 - 请注意,
code
您从第一个 HTTP 调用获得的仅在很短的时间内有效(以秒为单位);您应该在获得代码后立即进行第二次 HTTP 调用,否则它将过期 - 第二个请求的正文是什么?您是否设置了文档中标记为所需的所有参数?
推荐阅读
- mysql - MySQL可以返回匹配正则表达式的字符串部分吗?
- javascript - 收到 get 请求后如何重新加载 CSS 或按钮或页面的一部分?
- swift - SwfitUI navigationBarItems 两次调用位置权限
- docker - docker run -p 和 docker-compose.yml 中的端口有什么区别?
- botframework - 在选项卡和机器人之间的 Teams 应用程序中单点登录
- python - argmax_cuda" 没有为 'Bool 实现
- r - 如何仅显示 geom_smooth 预测的一部分?
- tsql - 具有聚集索引的 SQL 顶级函数
- apache-spark - PySpark 将对象和库复制到所有工作节点 - Pandas UDF
- python - 如何在熊猫中合并交叉表的类别?