flat: 全部暂存
This commit is contained in:
24
api/auth.js
24
api/auth.js
@@ -1,14 +1,34 @@
|
|||||||
import {
|
import {
|
||||||
request
|
request
|
||||||
} from '@/untils/AxiosUtils.js';
|
} from '@/untils/AxiosUtils.js';
|
||||||
|
import {
|
||||||
|
decryptJson
|
||||||
|
} from '@/untils/authService.js'
|
||||||
import website from "@/config/website";
|
import website from "@/config/website";
|
||||||
|
|
||||||
const authUrl = '/api/jobslink-api/user/user/auth/auth'
|
const authUrl = '/api/jobslink-api/user/user/auth/auth'
|
||||||
|
|
||||||
export const findAuth = () => request({
|
// export const findAuth = () => request({
|
||||||
|
// url: '/api/jobslink-api/user/user/find',
|
||||||
|
// method: 'get'
|
||||||
|
// });
|
||||||
|
|
||||||
|
export const findAuth = async () => {
|
||||||
|
try {
|
||||||
|
const encrypted = await request({
|
||||||
url: '/api/jobslink-api/user/user/find',
|
url: '/api/jobslink-api/user/user/find',
|
||||||
method: 'get'
|
method: 'get',
|
||||||
|
responseType: 'text', // 接收纯文本密文
|
||||||
});
|
});
|
||||||
|
const decryptedStr = decryptJson(encrypted.data);
|
||||||
|
return {
|
||||||
|
data: JSON.parse(decryptedStr),
|
||||||
|
};
|
||||||
|
} catch (error) {
|
||||||
|
console.error('请求或解密过程中出错:', error);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
export const cheakValue = () => request({
|
export const cheakValue = () => request({
|
||||||
url: authUrl,
|
url: authUrl,
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ module.exports = {
|
|||||||
// 显示标题
|
// 显示标题
|
||||||
showTitle: false,
|
showTitle: false,
|
||||||
loginURl: 'https://dy12333.org.cn/h5/#/pages/qyPackge/user/login/login',
|
loginURl: 'https://dy12333.org.cn/h5/#/pages/qyPackge/user/login/login',
|
||||||
|
AESKey: 'mL8na90u+5hoa/HKiMinvA==',
|
||||||
// map 1、黑色模块 2、白色模块
|
// map 1、黑色模块 2、白色模块
|
||||||
// supperMap: 'http://10.165.0.44:1205/proxy/rest/maps/f346b6c59dc64d5793713cf384fab78d/33cbaa14370449a08588f1074ecfec67',
|
// supperMap: 'http://10.165.0.44:1205/proxy/rest/maps/f346b6c59dc64d5793713cf384fab78d/33cbaa14370449a08588f1074ecfec67',
|
||||||
// supperMap: 'http://10.165.0.44:1205/proxy/rest/maps/c02c6f51f3ab4190bffd5e3e54cf5ac4/111013e9067749488d44841208771768',
|
// supperMap: 'http://10.165.0.44:1205/proxy/rest/maps/c02c6f51f3ab4190bffd5e3e54cf5ac4/111013e9067749488d44841208771768',
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
"versionName": "1.0.0",
|
"versionName": "1.0.0",
|
||||||
"versionCode": "100",
|
"versionCode": "100",
|
||||||
"transformPx": false,
|
"transformPx": false,
|
||||||
|
"sassImplementationName": "node-sass",
|
||||||
"app-plus": {
|
"app-plus": {
|
||||||
"usingComponents": true,
|
"usingComponents": true,
|
||||||
"compilerVersion": 3,
|
"compilerVersion": 3,
|
||||||
|
|||||||
5
package-lock.json
generated
5
package-lock.json
generated
@@ -1805,6 +1805,11 @@
|
|||||||
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz",
|
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz",
|
||||||
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
|
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
|
||||||
},
|
},
|
||||||
|
"crypto-js": {
|
||||||
|
"version": "4.2.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz",
|
||||||
|
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
|
||||||
|
},
|
||||||
"csscolorparser": {
|
"csscolorparser": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmmirror.com/csscolorparser/-/csscolorparser-1.0.3.tgz",
|
"resolved": "https://registry.npmmirror.com/csscolorparser/-/csscolorparser-1.0.3.tgz",
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@supermap/iclient-ol": "^11.1.1",
|
"@supermap/iclient-ol": "^11.1.1",
|
||||||
|
"crypto-js": "^4.2.0",
|
||||||
"decimal.js": "^10.2.0",
|
"decimal.js": "^10.2.0",
|
||||||
"js-base64": "^2.4.9",
|
"js-base64": "^2.4.9",
|
||||||
"js-md5": "^0.7.3",
|
"js-md5": "^0.7.3",
|
||||||
|
|||||||
44
untils/authService.js
Normal file
44
untils/authService.js
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
import CryptoJS from 'crypto-js';
|
||||||
|
import overAllConfig from '@/config.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AES-CBC 解密(从 Base64 中提取随机 IV)
|
||||||
|
* @param {string} base64Str - 加密后的 Base64 字符串(IV + 密文)
|
||||||
|
* @param {string} keyStr - 16 字节密钥字符串
|
||||||
|
* @returns {string} 解密后的明文
|
||||||
|
*/
|
||||||
|
export function decryptJson(encryptedBase64, base64Key = overAllConfig.AESKey) {
|
||||||
|
try {
|
||||||
|
// 1. Base64 解码密钥 & 数据
|
||||||
|
const key = CryptoJS.enc.Base64.parse(base64Key);
|
||||||
|
const combinedData = CryptoJS.enc.Base64.parse(encryptedBase64);
|
||||||
|
|
||||||
|
// 2. 提取 IV(前16字节 = 4 个 32bit Word)
|
||||||
|
const ivWords = combinedData.words.slice(0, 4);
|
||||||
|
const iv = CryptoJS.lib.WordArray.create(ivWords, 16);
|
||||||
|
|
||||||
|
// 3. 提取密文(剩余部分)
|
||||||
|
const ciphertextWords = combinedData.words.slice(4);
|
||||||
|
const ciphertext = CryptoJS.lib.WordArray.create(
|
||||||
|
ciphertextWords,
|
||||||
|
combinedData.sigBytes - 16
|
||||||
|
);
|
||||||
|
|
||||||
|
// 4. 解密
|
||||||
|
const decrypted = CryptoJS.AES.decrypt({
|
||||||
|
ciphertext
|
||||||
|
}, key, {
|
||||||
|
iv: iv,
|
||||||
|
mode: CryptoJS.mode.CBC,
|
||||||
|
padding: CryptoJS.pad.Pkcs7, // 等价于 Java 的 PKCS5Padding
|
||||||
|
});
|
||||||
|
|
||||||
|
const result = decrypted.toString(CryptoJS.enc.Utf8);
|
||||||
|
|
||||||
|
if (!result) throw new Error('解密失败,返回空字符串(可能密钥错误或格式错误)');
|
||||||
|
return result;
|
||||||
|
} catch (e) {
|
||||||
|
console.error('解密失败:', e);
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user