需求:
只要用户有操作行为,token永不过期的做法
token过期时间一般由后台控制,例如后台设置2个小时token将会过期,那么无论用户有没有正在操作,2个小时后,token的值都会过期。
但是,用户肯定不希望是这种效果,操作到一半然后因为到了2个小时就强制退出登录,换谁都会有点炸毛。如果后台不能处理的话,其实也可以通过前端进行处理,但前提是必须由后台写多一个可以单独获取新的token的接口。
思路:
像我们做后台管理系统,一般token都会保存起来给每一个请求调用。
所以,每次在登录的时候,我们在保存token的同时,顺便把当前登录的时间戳也保存下来。并把时间戳存放在cookie中。(时间戳A)
在登录之后,我们每一个请求都要获取一下时间戳。(时间戳B)
假设token 两个小时后过期,我们每一次请求的时候都做一个判断:
时间戳B - 时间戳A > 1个小时 (当然,你也可以设置1个半小时之类的)
那么我们调用接口重新获取token.
代码实现:
具体代码就不放上来的。
但是可以说几点需要注意的:
1、每次重新获取token之后,也要重新设置cookie中的时间戳,设置为当前时间戳,这样他就初始化了。
2、重新获取token的时间不要太晚,例如,两个小时过期,不要等到1个小时50分才去请求重新获取token,
尽可能早点获取。