diff --git a/src/config/axios/service.ts b/src/config/axios/service.ts
index 7c31e0b..8748727 100644
--- a/src/config/axios/service.ts
+++ b/src/config/axios/service.ts
@@ -21,9 +21,9 @@ const ignoreMsgs = [
export const isRelogin = { show: false }
// Axios 无感知刷新令牌,参考 https://www.dashingdog.cn/article/11 与 https://segmentfault.com/a/1190000020210980 实现
// 请求队列
-let requestList: any[] = []
+const requestList: any[] = []
// 是否正在刷新中
-let isRefreshToken = false
+const isRefreshToken = false
// 请求白名单,无须token的接口
const whiteList: string[] = ['/login', '/refresh-token']
@@ -109,45 +109,48 @@ service.interceptors.response.use(
// 如果是忽略的错误码,直接返回 msg 异常
return Promise.reject(msg)
} else if (code === 401) {
- // 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了
- if (!isRefreshToken) {
- isRefreshToken = true
- // 1. 如果获取不到刷新令牌,则只能执行登出操作
- if (!getRefreshToken()) {
- return handleAuthorized()
- }
- // 2. 进行刷新访问令牌
- try {
- const refreshTokenRes = await refreshToken()
- // 2.1 刷新成功,则回放队列的请求 + 当前请求
- setToken((await refreshTokenRes).data.data)
- config.headers!.Authorization = 'Bearer ' + getAccessToken()
- requestList.forEach((cb: any) => {
- cb()
- })
- requestList = []
- return service(config)
- } catch (e) {
- // 为什么需要 catch 异常呢?刷新失败时,请求因为 Promise.reject 触发异常。
- // 2.2 刷新失败,只回放队列的请求
- requestList.forEach((cb: any) => {
- cb()
- })
- // 提示是否要登出。即不回放当前请求!不然会形成递归
- return handleAuthorized()
- } finally {
- requestList = []
- isRefreshToken = false
- }
- } else {
- // 添加到队列,等待刷新获取到新的令牌
- return new Promise((resolve) => {
- requestList.push(() => {
- config.headers!.Authorization = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token 请根据实际情况自行修改
- resolve(service(config))
- })
- })
- }
+ // 如果未进行认证,返回登录页面(切换浏览器等均会触发)
+ console.log(msg)
+ return handleAuthorized()
+ // // 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了
+ // if (!isRefreshToken) {
+ // isRefreshToken = true
+ // // 1. 如果获取不到刷新令牌,则只能执行登出操作
+ // if (!getRefreshToken()) {
+ // return handleAuthorized()
+ // }
+ // // 2. 进行刷新访问令牌
+ // try {
+ // const refreshTokenRes = await refreshToken()
+ // // 2.1 刷新成功,则回放队列的请求 + 当前请求
+ // setToken((await refreshTokenRes).data.data)
+ // config.headers!.Authorization = 'Bearer ' + getAccessToken()
+ // requestList.forEach((cb: any) => {
+ // cb()
+ // })
+ // requestList = []
+ // return service(config)
+ // } catch (e) {
+ // // 为什么需要 catch 异常呢?刷新失败时,请求因为 Promise.reject 触发异常。
+ // // 2.2 刷新失败,只回放队列的请求
+ // requestList.forEach((cb: any) => {
+ // cb()
+ // })
+ // // 提示是否要登出。即不回放当前请求!不然会形成递归
+ // return handleAuthorized()
+ // } finally {
+ // requestList = []
+ // isRefreshToken = false
+ // }
+ // } else {
+ // // 添加到队列,等待刷新获取到新的令牌
+ // return new Promise((resolve) => {
+ // requestList.push(() => {
+ // config.headers!.Authorization = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token 请根据实际情况自行修改
+ // resolve(service(config))
+ // })
+ // })
+ // }
} else if (code === 500) {
ElMessage.error(t('sys.api.errMsg500'))
return Promise.reject(new Error(msg))
diff --git a/src/views/Login/components/LoginForm.vue b/src/views/Login/components/LoginForm.vue
index 4af1aa1..e2a316e 100644
--- a/src/views/Login/components/LoginForm.vue
+++ b/src/views/Login/components/LoginForm.vue
@@ -81,6 +81,29 @@
/>
+
+
+
+
+
+
+
+
+
+
-->
-
- 是否使用管理员密码强制退出该用户
-
-
-
-
-
- 管理员密码:
-
-
-
-
-