Skip to content

Commit 9850df0

Browse files
committed
完善 refresh token 失效时,无法自动跳转回首页的问题,同时优化相关的提示
1 parent 2266409 commit 9850df0

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

src/utils/request.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,10 @@ service.interceptors.response.use( async res => {
8686
setToken(refreshTokenRes.data)
8787
requestList.forEach(cb => cb())
8888
return service(res.config)
89-
} catch (e) {
90-
// 2.2 刷新失败,则只能执行登出操作
91-
// 为什么需要 catch 异常呢?刷新失败时,请求因为 Promise.reject 触发异常。
89+
} catch (e) {// 为什么需要 catch 异常呢?刷新失败时,请求因为 Promise.reject 触发异常。
90+
// 2.2 刷新失败,只回放队列的请求
91+
requestList.forEach(cb => cb())
92+
// 提示是否要登出。即不回放当前请求!不然会形成递归
9293
return handleAuthorized();
9394
} finally {
9495
requestList = []
@@ -98,12 +99,11 @@ service.interceptors.response.use( async res => {
9899
// 添加到队列,等待刷新获取到新的令牌
99100
return new Promise(resolve => {
100101
requestList.push(() => {
101-
config.headers['Authorization'] = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token 请根据实际情况自行修改
102-
resolve(service(config))
102+
res.config.headers['Authorization'] = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token 请根据实际情况自行修改
103+
resolve(service(res.config))
103104
})
104105
})
105106
}
106-
return handleAuthorized();
107107
} else if (code === 500) {
108108
Message({
109109
message: msg,
@@ -123,9 +123,13 @@ service.interceptors.response.use( async res => {
123123
})
124124
return Promise.reject(new Error(msg))
125125
} else if (code !== 200) {
126-
Notification.error({
127-
title: msg
128-
})
126+
if (msg === '无效的刷新令牌') { // hard coding:忽略这个提示,直接登出
127+
console.log('无效的刷新令牌')
128+
} else {
129+
Notification.error({
130+
title: msg
131+
})
132+
}
129133
return Promise.reject('error')
130134
} else {
131135
return res.data

0 commit comments

Comments
 (0)