diff --git a/.env.development b/.env.development index bb5a482..57f6456 100644 --- a/.env.development +++ b/.env.development @@ -18,6 +18,8 @@ VITE_APP_POWERJOB_ADMIN = 'http://localhost:7700/' VITE_APP_PORT = 80 +# 接口加密功能开关(如需关闭 后端也必须对应关闭) +VITE_APP_ENCRYPT = true # 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换 VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' # 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换 diff --git a/.env.production b/.env.production index f482f3f..03f5727 100644 --- a/.env.production +++ b/.env.production @@ -21,6 +21,8 @@ VITE_BUILD_COMPRESS = gzip VITE_APP_PORT = 80 +# 接口加密功能开关(如需关闭 后端也必须对应关闭) +VITE_APP_ENCRYPT = true # 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换 VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' # 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换 diff --git a/src/utils/request.ts b/src/utils/request.ts index 3de2076..f2a69f0 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -76,12 +76,14 @@ service.interceptors.request.use( } } } - // 当开启参数加密 - if (isEncrypt && (config.method === 'post' || config.method === 'put')) { - // 生成一个 AES 密钥 - const aesKey = generateAesKey(); - config.headers[encryptHeader] = encrypt(encryptBase64(aesKey)); - config.data = typeof config.data === 'object' ? encryptWithAes(JSON.stringify(config.data), aesKey) : encryptWithAes(config.data, aesKey); + if (import.meta.env.VITE_APP_ENCRYPT === 'true') { + // 当开启参数加密 + if (isEncrypt && (config.method === 'post' || config.method === 'put')) { + // 生成一个 AES 密钥 + const aesKey = generateAesKey(); + config.headers[encryptHeader] = encrypt(encryptBase64(aesKey)); + config.data = typeof config.data === 'object' ? encryptWithAes(JSON.stringify(config.data), aesKey) : encryptWithAes(config.data, aesKey); + } } // FormData数据去请求头Content-Type if (config.data instanceof FormData) { @@ -97,19 +99,21 @@ service.interceptors.request.use( // 响应拦截器 service.interceptors.response.use( (res: AxiosResponse) => { - // 加密后的 AES 秘钥 - const keyStr = res.headers[encryptHeader]; - // 加密 - if (keyStr != null && keyStr != '') { - const data = res.data; - // 请求体 AES 解密 - const base64Str = decrypt(keyStr); - // base64 解码 得到请求头的 AES 秘钥 - const aesKey = decryptBase64(base64Str.toString()); - // aesKey 解码 data - const decryptData = decryptWithAes(data, aesKey); - // 将结果 (得到的是 JSON 字符串) 转为 JSON - res.data = JSON.parse(decryptData); + if (import.meta.env.VITE_APP_ENCRYPT === 'true') { + // 加密后的 AES 秘钥 + const keyStr = res.headers[encryptHeader]; + // 加密 + if (keyStr != null && keyStr != '') { + const data = res.data; + // 请求体 AES 解密 + const base64Str = decrypt(keyStr); + // base64 解码 得到请求头的 AES 秘钥 + const aesKey = decryptBase64(base64Str.toString()); + // aesKey 解码 data + const decryptData = decryptWithAes(data, aesKey); + // 将结果 (得到的是 JSON 字符串) 转为 JSON + res.data = JSON.parse(decryptData); + } } // 未设置状态码则默认成功状态 const code = res.data.code || HttpStatus.SUCCESS;