首页 > 解决方案 > 获得具有授权码授予的 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。谁能帮我知道这个授权码的有效期是多久?

标签: autodesk-forgeautodeskautodesk-model-derivativeautodesk-bim360autodesk-data-management

解决方案


有几件事要检查:

  • 正如@KingJ 已经提到的,确保您的重定向 URL 是 url 编码的;范围相同,我相信:符号(如果有多个范围则为空格)也应该被编码
  • 请注意,code您从第一个 HTTP 调用获得的仅在很短的时间内有效(以秒为单位);您应该在获得代码后立即进行第二次 HTTP 调用,否则它将过期
  • 第二个请求的正文是什么?您是否设置了文档中标记为所需的所有参数?

推荐阅读