| src/utils/request/common.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/utils/request/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/utils/request/common.ts
New file @@ -0,0 +1,31 @@ import cryptoJs from 'crypto-js'; import { type IRequestOptions } from 'senior-request'; 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 | string ) { return cryptoJs.MD5(`${token}-${userId}-${timestampInSeconds}-${ApiSignPrivateKey}`).toString(); } export 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; } 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 { setRequestheaders } from './common'; // 加载环境变量 VITE_PROXY_DOMAIN(开发环境) VITE_PROXY_DOMAIN_REAL(打包后的线上环境) const { VITE_PROXY_DOMAIN, VITE_PROXY_DOMAIN_REAL, DEV } = loadEnv(); @@ -170,7 +171,7 @@ requestInterceptors: [ [ (config) => { const $config = config; let $config = config; // 开启进度条动画 if (config.needNProcess) { NProgress.start(); @@ -210,7 +211,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 +221,8 @@ } resolve(BoleRequest.retryOriginalRequest($config)); } else { $config.headers['Authorization'] = 'Bearer ' + token; const userStore = useUserStoreHook(); $config = setRequestheaders($config, token, userStore.userId); resolve($config); } } else {