今天做项目登录部分,跟旁边同事交流登录过程中封装的一个名为refreshToken的一个API,我有些纳闷,不懂这个refreshToken刷新token有什么用,是要跳转到登录页重新登录获取token吗?如果是这样,那为什么定这样一个名字而不叫做reLogin呢?
经过几分钟的交流,我得到了答案:
原来,我们的系统为了安全方面的考虑,定义了两个token,一个token是验证登录的token,一个token是refresh的token,这两个token中,前者的过期时间较短,后者的过期时间较长
当用户登录成功后,接口会返回两个token,携带的就是这两个token,后边当登录的token过期了话,接口返回401,这时我们会先调用refreshToken这个我们自己封装的api,里边调用刷新登录token的接口,而这个接口需要携带refresh的token,调用成功后,两个token都会被更新,并刷新过期时间。也就是说,refresh的token的作用是用来刷新控制登录验证这个token的
那么两个token都是有过期的时间的,如果refresh的token在调用接口的时候也过期了,那么这个时候我们就会直接跳转到登录页,在重新登录之后,重新获取两个token