获得具有授权码授予的 3-Leged Token 会给出错误 AUTH-004
Posted
技术标签:
【中文标题】获得具有授权码授予的 3-Leged Token 会给出错误 AUTH-004【英文标题】:Get a 3-Legged Token with Authorization Code Grant gives an Error AUTH-004 【发布时间】:2021-12-17 00:42:07 【问题描述】:在我们的应用程序中,我们有一个 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。 谁能帮我看看这个授权码的有效期是多久?
【问题讨论】:
你的redirect_url
url 编码了吗?
【参考方案1】:
需要检查的几件事:
正如@KingJ 已经提到的,确保您的重定向 URL 是 url 编码的;范围相同,我相信:
符号(如果有多个范围,还有空格)也应该被编码
请注意,您从第一次 HTTP 调用获得的code
仅在很短的时间内有效(以秒为单位);您应该在获得代码后立即进行第二次 HTTP 调用,否则它将过期
第二个请求的正文是什么?您是否设置了docs 中标记为所需的所有参数?
【讨论】:
以上是关于获得具有授权码授予的 3-Leged Token 会给出错误 AUTH-004的主要内容,如果未能解决你的问题,请参考以下文章