vue的token刷新处理的方法

2020-06-14 06:19:19易采站长站整理

/*把请求(token)=>{....}都push到一个数组中*/
let retry = new Promise((resolve, reject) => {
/*(token) => {...}这个函数就是回调函数*/
subscribeTokenRefresh((token) => {
config.headers.Authorization = 'Bearer ' + token
/*将请求挂起*/
resolve(config)
})
})
return retry

在刷新token请求的成功回调里执行下面代码,重新发起请求。


/*执行数组里的函数,重新发起被挂起的请求*/
onRrefreshed(res.data.data.token)

4、因为有人在评论里问util文件,应该是想知道具体怎么判断token过期的,其实在获得token时,是有返回一个token过期时间 ,你可以先将它先保存起来,然后在需要时,拿出来与本地时间比较即可


/*判断token是否过期*/
function isTokenExpired() {
/*从localStorage中取出token过期时间*/
let expiredTime = new Date(JSON.parse(localStorage.auth).expired_at).getTime() / 1000
/*获取本地时间*/
let nowTime = new Date().getTime() / 1000
/*获取校验时间差*/
let diffTime = JSON.parse(sessionStorage.diffTime)
/*校验本地时间*/
nowTime -= diffTime
/*如果 < 10分钟,则说明即将过期*/
return (expiredTime - nowTime) < 10*60
}