Android中关于RefreshToken问题
2021-04-08 本文已影响0人
MIRROR1217
在http请求中,我们知道token是有一定时间限制的,比如一周或者1个月,到时间就过期了。然后我们总是不希望用户一直重复的进行登录操作,这个时候就需要选择时机更新token。
第一种方案
每次进入app就刷新token,即每次进入首页首先刷新token,不管token是否过期。这样的好处是简单,不用关注太复杂的逻辑。坏处则是每次进入需要刷新token,造成资源浪费。
第二种方案
在http请求时,后端返回token失效错误时,再去刷新token,然后用新的token重新请求。这样的好处是只有出问题时才刷新,比较节约资源。坏处是要连续请求三次,耗时比较长,逻辑比较复杂。
第三种方案
我们知道,刷新token是因为服务端对token设置了一个有效期,比如24小时。这个时候,我们可以判断时间去去刷新token。比如我们缓存获取token的时间a1,当前时间a2,token失效最长时间t,如果a2-a1 大于t,那么表示该刷新token了。该方案的特点是利用了拦截器的优点,我们要在第一个拦截器中加入判断,条件达到了则刷新token,然后继续往下走,不影响后面的逻辑。
这里是本人思考刷新token的一点简单思路,仅供参考,大家有其他的想法可以一起交流。