刷新流程
- 客户端发起请求
当检测到Access Token过期(通过定时检查或API返回错误码),客户端向授权服务器的Token端点发送POST请求,需包含以下参数:1
2
3
4
5
6
7
8grant_type=refresh_token
refresh_token=xxx(已存储的Refresh Token)
client_id和client_secret(应用凭证,用于鉴权) 示例请求(参考网页11、21):
Http
POST /token HTTP/1.1
Host: auth-server.com
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&refresh_token=WPsGJbvpBjqXz6IJIr1UHKyrdVF&client_id=your_client_id&client_secret=your_client_secret - 服务端验证
验证Refresh Token有效性:检查是否过期、是否被撤销、是否属于当前客户端(通过client_id匹配)
关联用户与权限:根据Refresh Token绑定的用户身份生成新的Access Token,保持权限范围(scope)不变
- 生成新Token
新Access Token:生成新的Access Token,通常有效期较短(如1小时)。
Refresh Token策略:
单次使用:原Refresh Token失效,返回新的Refresh Token(推荐)
长期有效:原Refresh Token不变,仅更新Access Token(需配合安全策略)
示例响应
1 | { |
- 客户端更新Token
- 客户端存储新Access Token及可能的Refresh Token,后续请求使用新Toke