From 18d5d039f042f1c587e181b3026c7c89152ca7cd Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 24 十一月 2025 15:23:06 +0800
Subject: [PATCH] fix: 等保

---
 src/utils/request/index.ts |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/utils/request/index.ts b/src/utils/request/index.ts
index 3c654d4..8768f21 100644
--- a/src/utils/request/index.ts
+++ b/src/utils/request/index.ts
@@ -8,6 +8,7 @@
 import { ElLoading as Loading, ElNotification } from 'element-plus';
 import { router } from '@/router';
 import { Message, tokenIsExpired } from '@/utils';
+import { generateApiSign, getTimestampInSeconds } from './common';
 
 // 鍔犺浇鐜鍙橀噺 VITE_PROXY_DOMAIN锛堝紑鍙戠幆澧冿級  VITE_PROXY_DOMAIN_REAL锛堟墦鍖呭悗鐨勭嚎涓婄幆澧冿級
 const { VITE_PROXY_DOMAIN, VITE_PROXY_DOMAIN_REAL, DEV } = loadEnv();
@@ -97,6 +98,19 @@
   withCredentials: true,
 };
 
+function setRequestheaders(config: IRequestOptions, accessToken: string, userId: string) {
+  config.headers['Authorization'] = 'Bearer ' + accessToken;
+  const timestampInSeconds = getTimestampInSeconds();
+  config.headers['userId'] = userId;
+  config.headers['time'] = timestampInSeconds;
+  config.headers['sign'] = generateApiSign(
+    config.headers['Authorization'],
+    userId,
+    timestampInSeconds
+  );
+  return config;
+}
+
 const config: RequestConfig<ResponseStructure, IRequestOptions> = {
   ...AxiosOptions,
 
@@ -170,8 +184,7 @@
   requestInterceptors: [
     [
       (config) => {
-        console.log('req config: ', config);
-        const $config = config;
+        let $config = config;
         // 寮�鍚繘搴︽潯鍔ㄧ敾
         if (config.needNProcess) {
           NProgress.start();
@@ -211,7 +224,7 @@
                     clientId: userStore.accountInfo.client_id,
                   })
                   .then((res) => {
-                    $config.headers['Authorization'] = 'Bearer ' + res.accessToken;
+                    $config = setRequestheaders($config, res.accessToken, userStore.userId);
                     BoleRequest.requests.forEach((cb) => cb(res.accessToken));
                     BoleRequest.requests = [];
                   })
@@ -221,7 +234,8 @@
               }
               resolve(BoleRequest.retryOriginalRequest($config));
             } else {
-              $config.headers['Authorization'] = 'Bearer ' + token;
+              const userStore = useUserStoreHook();
+              $config = setRequestheaders($config, token, userStore.userId);
               resolve($config);
             }
           } else {

--
Gitblit v1.9.1