亚马逊API隐式授权流后如何获取RefreshToken?能否通过Access_token获取?
关于亚马逊API隐式授权流获取Refresh Token的问题
1. 隐式授权流本身不支持获取Refresh Token
隐式授权流的设计逻辑里就不会返回Refresh Token,哪怕请求时包含OpenID scope也一样。这个流程针对的是无法安全存储敏感凭证的纯前端类应用,OAuth 2.0规范和亚马逊API的实现都遵循这个设定,不存在通过该流程直接拿到Refresh Token的方法。
2. 无法通过Access Token换取Refresh Token
Access Token仅作为临时访问资源的凭证,没有任何官方途径能通过它获取Refresh Token。如果你的业务必须用到Refresh Token,唯一可行的方式是切换到授权码流(Authorization Code Flow)——这个流程面向能安全存储客户端密钥的应用(比如带后端服务的应用),会同时返回Access Token和Refresh Token,后续可通过Refresh Token刷新获取新的Access Token。
3. 纯前端应用的替代方案
如果你的应用是纯前端SPA,无法使用授权码流(没法安全存储客户端密钥),可以采用以下方式处理Access Token过期问题:
- 当Access Token过期时,引导用户重新走隐式授权流程,获取新的Access Token
- 若条件允许,新增后端服务层,将授权流程转移到后端,用授权码流获取并维护Refresh Token,前端仅从后端获取临时的Access Token
内容的提问来源于stack exchange,提问作者mumacuh
相关产品推荐
相关产品推荐

