双 token 实现无感刷新的基本逻辑

双 token 实现无感刷新的基本逻辑如下:

  1. 用户登录成功后,服务器返回两个 token:access_token 和 refresh_token。
  2. 用户在访问需要登录的接口时,需要在请求头的 Authorization 字段中带上 access_token。
  3. 当 access_token 过期时,客户端发送一个特殊的请求到服务器,携带 refresh_token。
  4. 服务器验证 refresh_token 的有效性,如果有效,则生成新的 access_token 和 refresh_token,并返回给客户端。
  5. 客户端将新的 access_token 和 refresh_token 存储在本地,替换掉旧的 token。
  6. 客户端继续发送之前失败的请求,带上新的 access_token。
  7. 重复上述步骤,直到 refresh_token 过期或者用户主动退出登录。

通过这种机制,用户在一段时间内只需要登录一次,即可实现无感刷新 token,提升了用户的使用体验。

通常,access_token 有效期较短(比如几小时), refresh_token 有效期较长(比如7天),最终能够实现的是无论什么时候只要7天内使用过应用就不需要跳转到登录页重新登录,用户较为活跃的情况下是感受不到登录的。

你可能感兴趣的:(Java,Spring,Boot,Spring,Cloud,服务器,运维)