You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OAuth2刷新令牌实际包含内容及获取新访问令牌流程问询

什么是Refresh Token?
  • 它是OAuth2体系里的长期凭证,和Access Token的核心差异在于定位和生命周期:
    • Access Token是访问资源服务器的直接凭证,生命周期通常很短(15分钟到1小时),目的是降低凭证泄露后的风险范围
    • Refresh Token生命周期长得多(几天到数月不等),唯一作用就是向授权服务器申请新的Access Token,绝对不能直接用来访问资源
  • 存储要求更严格:由于有效期长,泄露后危害更大,客户端必须将其存在安全位置——比如后端服务的加密数据库、移动端的安全存储容器,绝不能放在前端LocalStorage这类易被XSS攻击的地方
用Refresh Token获取新Access Token的流程

当Access Token过期后,客户端按以下步骤操作即可:

  1. 构造请求:向授权服务器的token端点发送POST请求,携带必填参数:
    • grant_type:固定为refresh_token(明确告知授权服务器要走Refresh Token换凭证的流程)
    • refresh_token:之前获取到的有效Refresh Token
    • 可选参数(取决于授权服务器配置):client_id、client_secret(保密客户端如后端服务必须传,公开客户端如SPA一般不传)、scope(新Access Token的权限范围,不能超过原授权范围)
  2. 授权服务器验证:
    • 检查Refresh Token是否有效(是否存在、未过期、未被用户主动吊销)
    • 验证客户端身份(若配置了客户端校验)
    • 确认请求的scope未超出原授权的权限边界
  3. 返回新凭证:验证通过后,授权服务器会返回新的Access Token,通常还会附带一个新的Refresh Token(推荐用新的,进一步提升安全性);若验证失败,会返回对应错误码(比如invalid_grant,表示Refresh Token无效)
  4. 客户端更新凭证:用新的Access Token替换旧的,存储新的Refresh Token(若返回),之后即可继续用新Access Token访问资源服务器
实验时的常见注意点
  • 并非所有OAuth2模式都支持Refresh Token:授权码模式完全支持,而隐式模式通常不支持(因为隐式模式面向前端应用,无法安全存储Refresh Token)
  • Refresh Token也会失效:比如过期、被用户吊销、授权服务器检测到异常使用(如异地登录),此时客户端必须引导用户重新走授权流程,获取新的Access Token和Refresh Token
  • 区分保密/公开客户端:后端服务这类保密客户端可以安全存储client_secret和Refresh Token;SPA、移动端这类公开客户端要避免存储敏感信息,部分授权服务器会对公开客户端的Refresh Token做特殊限制

内容的提问来源于stack exchange,提问作者kupendra pola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 22:10:09