zhengyiming
2025-11-24 18d5d039f042f1c587e181b3026c7c89152ca7cd
fix: 等保
1个文件已修改
1个文件已添加
34 ■■■■■ 已修改文件
src/utils/request/common.ts 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request/index.ts 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request/common.ts
New file
@@ -0,0 +1,13 @@
import cryptoJs from 'crypto-js';
const ApiSignPrivateKey = 'X07uIM2cHK5IJhDi4ppoxQglYE21gq3E';
export function getTimestampInSeconds() {
  var date = new Date();
  var timestampInSeconds = Math.floor(date.getTime() / 1000);
  return timestampInSeconds;
}
export function generateApiSign(token: string, userId: string, timestampInSeconds: number) {
  return cryptoJs.MD5(`${token}-${userId}-${timestampInSeconds}-${ApiSignPrivateKey}`).toString();
}
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,7 +184,7 @@
  requestInterceptors: [
    [
      (config) => {
        const $config = config;
        let $config = config;
        // 开启进度条动画
        if (config.needNProcess) {
          NProgress.start();
@@ -210,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 = [];
                  })
@@ -220,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 {