03 refreshToekn如何刷新token

vvEcho 2025-03-08 00:26:05
Categories: Tags:

刷新流程

  1. 客户端发起请求
    当检测到Access Token过期(通过定时检查或API返回错误码),客户端向授权服务器的Token端点发送POST请求,需包含以下参数:
    1
    2
    3
    4
    5
    6
    7
    8
    grant_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
  2. 服务端验证
    验证Refresh Token有效性:检查是否过期、是否被撤销、是否属于当前客户端(通过client_id匹配)

关联用户与权限:根据Refresh Token绑定的用户身份生成新的Access Token,保持权限范围(scope)不变

  1. 生成新Token
    新Access Token:生成新的Access Token,通常有效期较短(如1小时)。

Refresh Token策略:

单次使用:原Refresh Token失效,返回新的Refresh Token(推荐)

长期有效:原Refresh Token不变,仅更新Access Token(需配合安全策略)

示例响应

1
2
3
4
5
6
{
"access_token": "new_access_token",
"expires_in": 3600,
"refresh_token": "new_refresh_token", // 可选
"token_type": "Bearer"
}
  1. 客户端更新Token
  2. 客户端存储新Access Token及可能的Refresh Token,后续请求使用新Toke