页面无感刷新

25 阅读1分钟

我们网站之前采用jwt的方式实现认证,即用户登录后,登录接口返回一个token,前端存着,后面的接口都带上它,后端凭此进行认证。

但这种模式有个缺陷:token过期,用户就要重新登录,用户体验非常不好。

于是,我们设计出了一种双token的模式实现页面的无感刷新。

基本的原理是这样:登录成功后,后端返回两个token,token1用来真正做认证,token2用来刷新token。

具体的实现分四步:

一 在接口拦截器中拦截因为认证token过期的接口(收集这些接口),同时拦截因为刷新token过期的接口(返回登录页)。

二 使用刷新token调用刷新token接口,作用是后端对token进行刷新,然后返回新的token。

三 使用新token替换原来的token。

四 重新调用那些因为认证token过期的接口。

总结

刷新token比认证token的有效期长的多,刷新token过期用户会重新登录,而认证token过期,页面会无感刷新。