Selaa lähdekoodia

Merge branch 'dev' of https://git.citupro.com/zhengnaiwen_citu/menduner into dev

Xiao_123 7 kuukautta sitten
vanhempi
commit
10e7075b10
1 muutettua tiedostoa jossa 14 lisäystä ja 5 poistoa
  1. 14 5
      src/config/axios/service.js

+ 14 - 5
src/config/axios/service.js

@@ -162,7 +162,10 @@ service.interceptors.response.use(
         // 2. 进行刷新访问令牌
         try {
           // 2.1 刷新成功,则回放队列的请求 + 当前请求
-          const data = tokenIndex === 1 ? await enterpriseRefreshToken(getRefreshToken()) : await userRefreshToken(getRefreshToken())
+          const refreshApi = tokenIndex === 1  ? enterpriseRefreshToken : userRefreshToken
+          const data = await refreshApi(getRefreshToken())
+          console.log(132, data)
+          // const data = tokenIndex === 1 ? await enterpriseRefreshToken(getRefreshToken()) : await userRefreshToken(getRefreshToken())
           setToken(data.accessToken)
           setRefreshToken(data.refreshToken)
 
@@ -173,11 +176,13 @@ service.interceptors.response.use(
           requestList = []
           return service(config)
         } catch (e) {
+          // console.log(e)
           // 为什么需要 catch 异常呢?刷新失败时,请求因为 Promise.reject 触发异常。
           // 2.2 刷新失败,只回放队列的请求
-          requestList.forEach((cb) => {
-            cb()
-          })
+          // 刷新失败强制需要退回登录页面 不做队列执行
+          // requestList.forEach((cb) => {
+          //   cb()
+          // })
           // 提示是否要登出。即不回放当前请求!不然会形成递归
           return handleAuthorized()
         } finally {
@@ -245,13 +250,17 @@ const handleAuthorized = () => {
       return
     }
     isReLogin.show = true
-    Confirm(t('common.confirmTitle'), t('sys.api.timeoutMessage')).then(() => {
+    Confirm(t('common.confirmTitle'), t('sys.api.timeoutMessage'), {
+      cancelCallback: true
+    }).then(() => {
       // resetRouter() // 重置静态路由表
       // deleteUserCache() // 删除用户缓存
       removeToken()
       isReLogin.show = false
       // 干掉token后再走一次路由让它过router.beforeEach的校验
       location.reload()
+    }).catch(() => {
+      isReLogin.show = false
     })
   }
   return Promise.reject(t('sys.api.timeoutMessage'))