asd26269546 il y a 1 an
Parent
commit
71ac4dd5af
3 fichiers modifiés avec 153 ajouts et 131 suppressions
  1. 1 0
      package.json
  2. 25 4
      src/utils/axios.js
  3. 127 127
      yarn.lock

+ 1 - 0
package.json

@@ -16,6 +16,7 @@
     "@zxing/library": "^0.20.0",
     "axios": "^1.3.4",
     "core-js": "^3.8.3",
+    "crypto-js": "^4.1.1",
     "dingtalk-jsapi": "^3.0.20",
     "echarts": "^5.4.2",
     "pinia": "^2.0.33",

+ 25 - 4
src/utils/axios.js

@@ -6,7 +6,7 @@ import { tansParams, blobValidate } from '@/utils/ruoyi'
 import cache from '@/utils/cache'
 import { showLoadingToast, closeToast,showNotify,showFailToast  } from 'vant';
 import { getToken } from '@/utils/auth'
-
+import CryptoJS from 'crypto-js'
 // 是否显示重新登录
 export let isRelogin = { show: false };
 import 'vant/lib/index.css'
@@ -17,15 +17,36 @@ const service = axios.create({
   // 超时
   timeout: 10000
 })
-
+function generateRandomString(length) {  
+  var result = '';  
+  var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';  
+  var charactersLength = characters.length;  
+  for (var i = 0; i < length; i++) {  
+      result += characters.charAt(Math.floor(Math.random() * charactersLength));  
+  }  
+  return result;  
+}
 // request拦截器
 service.interceptors.request.use(config => {
   // 是否需要设置 token
   const isToken = (config.headers || {}).isToken === false
   // 是否需要防止数据重复提交
   const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
-  if ( getToken() || !isToken) {
-    config.headers['Authorization'] = 'Bearer ' + getToken()// 让每个请求携带自定义token 请根据实际情况自行修改
+  if (getToken() && !isToken) {
+    // 待加密的数据
+    let randomNumber = generateRandomString(20)
+    //后面加20位随机数
+    let data = getToken() + new Date().getTime() + randomNumber;
+
+    // 密钥,注意:密钥长度必须为16, 24, 32字节对应AES-128, AES-192, AES-256
+    let key = CryptoJS.enc.Utf8.parse('N[9f%2gKyo7(GNv3');
+    // AES加密
+    let encrypted = CryptoJS.AES.encrypt(data, key, {
+        mode: CryptoJS.mode.ECB,
+        padding: CryptoJS.pad.Pkcs7
+    });
+   config.headers['Authorization'] = encrypted // 让每个请求携带自定义token 请根据实际情况自行修改
+   config.headers['randomNumber'] = randomNumber
   }
   if (config.url === 'https://winfaster.obs.cn-south-1.myhuaweicloud.com') {
     config.headers['Content-Type'] = 'multipart/form-data'

Fichier diff supprimé car celui-ci est trop grand
+ 127 - 127
yarn.lock


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff