如何实现无感刷新

282 阅读1分钟

🎉方案1:直接跳转登录页

存在弊端是,如果正好在使用期间Token过期,直接造成直接登录。

🎉方案2:刷新Token重新发送

当Token过期,发送请求获得新的Token,再把原请求重新发送,但是会发生用户一直不用登陆。

🎉方案3: 每次请求刷新Token

每次网页请求都会带上刷新Token,只要系统一直在使用就不会造成Token过期,但是会增加服务器的开销。

🎉方案4:Token不过期,Redis过期记录

使用Redis记录过期时间,Redis可以进行延期,服务端就得维护用户的信息,使得服务器压力较大,并且JWT的目的就是为了放在客户端验证客户信息,在增加Redis本末倒置。就会增加集群。

🎉方案5:双Token

第一个Token就是平时用的,但是当Token1过期之后,就会使用Token2进行Token的请求和双Token的更新。这样即使是非活跃用户那么就可以直接跳转登录页,但是对于活跃用户来说可以实现我无感刷新。但是也存在一个问题就是当刷新Token时就会出现有以小段的时间节点存在Token不可用的情况,但是影响不大,不过也可以解决,使用定时器,在小于Token1过期时间的基础上就进行Token的刷新即可。