概念
无感刷新指的是token的刷新,数据请求的token有一个有效求,当过期之后不跳转登录页,而是自动刷新token值继续业务
当登录或刷新token时,后端都会返回两个值:token 和 refreshToken
方法一:
在请求发起前拦截每个请求,判断token的有效时间是否已经过期,若已过期,则将请求挂起,先刷新token后再继续请求。
方法二:
不在请求前拦截,而是拦截返回后的数据。先发起请求,接口返回过期后,先刷新token,再进行一次重试
总结
-
在请求开始时把请求条件(URL,入参,请求方式等)临时存储
-
请求返回:正确,则正常返回,释放请求条件临时存储
-
请求返回:错误且错误码是token过期,则把这个请求执行函数放入订阅中,然后请求refreshToken API 刷新token的请求
-
请求request时,当前如果是正在刷新token,则请求执行函数放入订阅中
-
刷新token的请求返回后,替换新的token,触发发布所有订阅中的请求函数,达到无感刷新token