无感登录实现思路

1.解决方案
无感登录实际上就是无感刷新 token。

1.在响应器中拦截,判断 token 返回过期后,调用刷新 token 的接口。

2.后端返回过期时间,前端判断 token 的过期时间,去调用刷新 token 的接口。

3.写一个定时器,定时刷新 token。

我们常用的第一种方法实现无感登录。

2.实现流程
1.登录流程

    用户输入用户名和密码进行登录。

    后端验证用户信息,如果验证通过,返回一个 token 和 refresh_token。
    前端将 token 和 refresh_token 保存在本地(例如 localStorage)。

2.拦截响应

    在前端,我们可以在响应拦截器中处理返回的响应。
    如果返回的状态码为401(未授权),说明 token 已经过期。

3.刷新 token

    使用本地保存的 refresh_token 来请求新的 token。
    请求时可以携带当前 token 的过期时间,以便后端可以更精确地控制新 token 的过期时间。

4.替换 token

    一旦新的 token 返回,前端将其保存,并替换本地旧的 token。

5.处理请求

    前端将新的 token 放入未完成的请求中,并重新发送请求。

6.错误处理

    如果 refresh_token 也过期了,那么需要重新登录。清除所有过期的 token,然后重新执行登录流程。

三种方法:

  1. 在响应器中拦截到401,判断token返回过期后,调用刷新token的接口

  2. 后端返回过期时间,前端判断token的过期时间,去调用刷新token的接口

  3. 前端写定时器,定时刷新token接口

    方法1流程:

    1. 登录成功后保存token 和 refresh_token
    2. 在响应拦截器中对401状态码引入刷新token的api方法调用
    3. 替换保存本地新的token
    4. 把错误对象里的token替换
    5. 再次发送未完成的请求
    6. 如果refresh_token过期了,判断是否过期,过期了就清除所有token重新登录
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2022-2024 CoffeeLin
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信