Ver código fonte

fix: 增加接口请求鉴权失败的code错误处理。

lanjianrong 4 anos atrás
pai
commit
1b4f1a5232
3 arquivos alterados com 12 adições e 3 exclusões
  1. 6 0
      src/utils/common/request.ts
  2. 1 1
      src/utils/consts.ts
  3. 5 2
      src/utils/history.ts

+ 6 - 0
src/utils/common/request.ts

@@ -7,6 +7,7 @@ import consts from '@/utils/consts'
 import { storage } from '@/utils/util'
 import { message } from 'antd'
 import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'
+import history from '../history'
 const pending: Array<PendingType> = []
 const removePending = (config: AxiosRequestConfig) => {
   for (const key in pending) {
@@ -66,6 +67,11 @@ service.interceptors.response.use(
       if (consts.TOKEN_INVALID_CODE.includes(data.code)) {
         userStore.logout()
       }
+
+      if (data.code === consts.RET_CODE.UN_PERMISSION) {
+        // 防止无权访问
+        history.goBack()
+      }
     }
     if (response.config.method?.toLocaleUpperCase() === 'GET') {
       const token = response?.headers['x-csrf-token']

+ 1 - 1
src/utils/consts.ts

@@ -9,7 +9,7 @@ export default {
   TOKEN_API: '', // 获取token
   TOKEN_INVALID_CODE: [ 1 ], // 接口返回码如果是1 则表明token过期或无效 需要重新登录
   TOKEN_WHITE_LIST: [ '/api/login' ], // 不需要设置token的白名单
-  RET_CODE: { SUCCESS: 0, FAIL: 1, TOKEN_UNDEFINED: 19, TOKEN_EXPIRED: 1 }, // 接口返回状态码
+  RET_CODE: { SUCCESS: 0, FAIL: 1, UN_PERMISSION: 2 }, // 接口返回状态码
   RETRY: { COUNT: 2, DELAY: 1000 }, // 请求重试次数/间隙
   RULE: { SAFE: 'safeRule', QUALITY: 'qualityRule', CONTRACT_RETURN: 'contractReturnRule', CONTRACT_PAID: 'contractPaidRule' }, // 编号规则弹窗常量
   UPLOAD_WHITE: "(.json|.txt|.xls|.xlsx|.doc|.docx|.pdf|.ppt|.pptx|.png|.jpg|.jpeg|.gif|.bmp|.cad|.dwg|.zip|.rar|.7z)$"  , // 上传类型-白名单

+ 5 - 2
src/utils/history.ts

@@ -1,3 +1,6 @@
-const createHistory = require('history').createBrowserHistory
+import { createBrowserHistory } from 'history'
+const createHistory = createBrowserHistory()
 
-export default createHistory()
+console.log(createHistory)
+
+export default createHistory