什么是token无感刷新

场景:假设我们现在有个Saas系统,里面包含了众多模块,所以为了安全起见我们会给他设置一个Token有效期,但是呢现在我们又开发了一个大屏数据可视化模块,这个模块需要长时间周期性的与后台通信,确保展示的数据是最新的,所以我们就不希望Token的过期时间那么快。为了解决这个问题我们就需要Token无感刷新,也就是双Token方案。

那么我们要如何实现呢?可以根据以下几点思路

1.在我们登录时,后端需要返回给我们两个Token,一个叫Access Token访问Token,另一个是Refresh Token刷新Token。

2.将两个Token存放起来,可以是vuex、localStorage等

3.当我们访问受保护资源时,我们只需要携带上Access Token进行请求,就跟平时使用Token那样。

4.当检测到Token失效时,这一步通常是通过响应拦截器,当检测如:401状态码时,我们就需要进行处理,将Refresh Token传给后端,后端验证通过就响应新的Token给我们,我们便可以将失效的Token进行替换,并重新发起之前失败的请求。

5.最后,当刷新Token也失效了,那么我们再跳转到登录页面就可以啦

总之,以上就是本人一个解决思路,如果有更好的解决方案,欢迎留言。