cz 1 год назад
Родитель
Сommit
b6bb884fa3
2 измененных файлов с 27 добавлено и 1 удалено
  1. 1 0
      package.json
  2. 26 1
      src/utils/request.js

+ 1 - 0
package.json

@@ -32,6 +32,7 @@
     "@vueup/vue-quill": "^1.0.0-alpha.40",
     "@vueuse/core": "9.5.0",
     "axios": "0.27.2",
+    "crypto-js": "^4.1.1",
     "echarts": "^5.4.0",
     "element-plus": "2.2.27",
     "file-saver": "2.0.5",

+ 26 - 1
src/utils/request.js

@@ -18,6 +18,7 @@ import {
   saveAs
 } from 'file-saver'
 import useUserStore from '@/store/modules/user'
+import CryptoJS from 'crypto-js'
 
 let downloadLoadingInstance;
 // 是否显示重新登录
@@ -36,6 +37,16 @@ const service = axios.create({
 
 })
 
+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
@@ -43,7 +54,21 @@ service.interceptors.request.use(config => {
   // 是否需要防止数据重复提交
   const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
   if (getToken() && !isToken) {
-    config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
+    // config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
+    // 待加密的数据
+    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
   }
   // get请求映射params参数
   if (config.method === 'get' && config.params) {