前言:当我们在完成登录以后,会对token进行存储,一般存储在本地以及vuex中,但是token是有时效性的,到达一定时效,就会失效,因此衍生出双token(下文一个叫token,另一个叫refresh_token),refresh_token的时效性设置应比token长,这样当token失效时,refresh_token可以发起一次请求,重新获取一次token,从而保证用户的体验舒适度,没必要正在疯狂输出,啪一下,快乐没了~~~~
前提:想使用双token也是有条件的,当我们第一次发起登录请求,后端返回的token字段,应返回两个,一个token,一个refresh_token,我们对这俩个token进行存储
正文:1.响应拦截器的请求失败的函数中判断有无token,没有token,则直接让用户跳转登录页面,有token则判断有无refresh_token,没有也是跳转登录页,让用户登录
2.有refresh_token则使用refresh_token发起新的请求token的函数
注意点:我们一般配置token都是在请求拦截器中统一配置好了请求头,配置refresh_token需要我们重新配置请求头,需要携带refresh_token才可以请求回来新的token,但是由于我们的请求需要经过响应拦截器,相当于原先的旧token覆盖了我们请求头携带的参数,会导致我们请求的失败,因此需要对请求头进行处理,当请求头存在值,就不需要给请求头赋值