刷新令牌(Refresh Token)
刷新令牌(Refresh Token) 是什么?
刷新令牌(Refresh Token)用于在 OAuth 2.0 授权服务器上换取新短期访问令牌的长期凭据,无需用户再次登录。
刷新令牌使应用能够在访问令牌过期后继续维持会话。客户端将其发送至授权服务器的 /token 端点,换取新的访问令牌(并可选地获得轮换后的刷新令牌)。因其授权长期访问,需严格保护:存储于 HttpOnly Cookie 或安全飞地、与客户端和设备绑定、每次使用都轮换,并检测重放(发现旧令牌被再次使用时撤销整条链)。绝不应暴露给浏览器 JavaScript。移动端与 SPA 流程应遵循 OAuth 2.1,使用 PKCE 与轮换。
● 示例
- 01
通过 POST /oauth/token 且 grant_type=refresh_token 刷新访问令牌。
- 02
轮换式刷新令牌:同一旧令牌出现两次时服务器作废整条链。
● 常见问题
刷新令牌(Refresh Token) 是什么?
用于在 OAuth 2.0 授权服务器上换取新短期访问令牌的长期凭据,无需用户再次登录。 它属于网络安全的 身份与访问 分类。
刷新令牌(Refresh Token) 是什么意思?
用于在 OAuth 2.0 授权服务器上换取新短期访问令牌的长期凭据,无需用户再次登录。
刷新令牌(Refresh Token) 是如何工作的?
刷新令牌使应用能够在访问令牌过期后继续维持会话。客户端将其发送至授权服务器的 /token 端点,换取新的访问令牌(并可选地获得轮换后的刷新令牌)。因其授权长期访问,需严格保护:存储于 HttpOnly Cookie 或安全飞地、与客户端和设备绑定、每次使用都轮换,并检测重放(发现旧令牌被再次使用时撤销整条链)。绝不应暴露给浏览器 JavaScript。移动端与 SPA 流程应遵循 OAuth 2.1,使用 PKCE 与轮换。
如何防御 刷新令牌(Refresh Token)?
针对 刷新令牌(Refresh Token) 的防御通常结合技术控制与运营实践,详见上方完整定义。
● 相关术语
- identity-access№ 007
访问令牌(Access Token)
由授权服务器签发的短期凭据,客户端向 API 出示后即可代表用户或服务访问受保护资源。
- identity-access№ 574
JWT(JSON Web Token)
紧凑、URL 安全的令牌格式(RFC 7519),携带带签名的 JSON 声明,广泛用作访问令牌、ID 令牌和会话载体。
- identity-access№ 749
OAuth 2.0
开放的授权框架,允许资源所有者在不共享凭据的情况下,授予第三方应用对 API 的有限范围访问。
- identity-access№ 760
OpenID Connect (OIDC)
构建在 OAuth 2.0 之上的身份层,允许客户端通过签名的 ID 令牌验证用户身份并获取基本资料。
- identity-access№ 1018
会话管理
用于颁发、维护、刷新和吊销已认证会话的一组控制措施,将用户身份与后续请求绑定,直至注销或过期。
- identity-access№ 088
Bearer 令牌(持有者令牌)
RFC 6750 定义的不透明或结构化凭据,仅凭持有即可授予对资源的访问权限,不需证明持有者是合法所有者。