我正在使用
auth0-react
来管理我的 SPA 中的身份验证,并且它已经工作了好几个月。但是,最近它停止支持使用刷新令牌。
我相信我的应用程序使用的是相当标准的结构,如 v1.12.1 的文档中所定义。当我最初登录时一切都很好:
/authorize
端点返回预期的内容并触发对 /token
的立即调用,负载中有 grant_type=authorization_code
。这成功了:HTTP 200 和包含 refresh_token
和 scope
以及其他字段的响应。
但是,当我在访问令牌过期后进行 API 调用时,会触发对
/token
的调用,它会接收到带有正文的 HTTP 400:{"error":"invalid_scope","error_description":"User is not authorized to the audience for those scopes"}
。一些实验表明,/token
请求在其负载中只有以下四个字段:client_id
、redirect_uri
、refresh_token
和 grant_type=refresh_token
。当我使用相同的详细信息进行手动调用但添加scope
时,请求成功。
因此,我相信我的问题是:有没有办法强制执行
getAccessTokenSilently
函数以在带有scope
的/token
请求中包含grant_type=refresh_token
参数?或者,有人能猜出几周前意外出现这个问题可能发生了什么变化吗? (我相信我没有做任何可能相关的代码更改:事实上,这段时间我几乎没有对我的 Javascript 进行任何更改,并且问题仍然存在于恢复到旧代码时。)
我不是身份验证流程方面的专家,所以如果我的问题不清楚或者您能想到任何进一步的检查,请告诉我。