Compare commits
No commits in common. "14b0a4581742b58aefb00222ec82e5667a2dfeaa" and "c348260b45a9cae27278b197b1cf7bb7a407dd8d" have entirely different histories.
14b0a45817
...
c348260b45
|
|
@ -33,7 +33,6 @@
|
||||||
"cornerstone-math": "^0.1.10",
|
"cornerstone-math": "^0.1.10",
|
||||||
"cornerstone-tools": "^6.0.10",
|
"cornerstone-tools": "^6.0.10",
|
||||||
"cornerstone-wado-image-loader": "^4.13.2",
|
"cornerstone-wado-image-loader": "^4.13.2",
|
||||||
"crypto-js": "^4.2.0",
|
|
||||||
"dcmjs": "^0.29.8",
|
"dcmjs": "^0.29.8",
|
||||||
"dicom-parser": "^1.8.9",
|
"dicom-parser": "^1.8.9",
|
||||||
"dicomedit": "^0.1.0",
|
"dicomedit": "^0.1.0",
|
||||||
|
|
@ -44,7 +43,6 @@
|
||||||
"hammerjs": "^2.0.8",
|
"hammerjs": "^2.0.8",
|
||||||
"html2canvas": "^1.4.1",
|
"html2canvas": "^1.4.1",
|
||||||
"js-md5": "^0.7.3",
|
"js-md5": "^0.7.3",
|
||||||
"jsencrypt": "^3.3.2",
|
|
||||||
"jszip": "^3.7.1",
|
"jszip": "^3.7.1",
|
||||||
"moment": "^2.27.0",
|
"moment": "^2.27.0",
|
||||||
"node-polyfill-webpack-plugin": "^2.0.1",
|
"node-polyfill-webpack-plugin": "^2.0.1",
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@ export function login(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/user/login',
|
url: '/user/login',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data,
|
data
|
||||||
ENCRYPT: true
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export function loginOut(params) {
|
export function loginOut(params) {
|
||||||
|
|
@ -186,10 +185,3 @@ export function sendMFAEmail(params) {
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 获取公钥
|
|
||||||
export function getPublicKey() {
|
|
||||||
return request({
|
|
||||||
url: `/user/getPublicKey`,
|
|
||||||
method: 'get',
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
// crypto.js
|
|
||||||
import CryptoJS from 'crypto-js';
|
|
||||||
import { JSEncrypt } from "jsencrypt";
|
|
||||||
import { getPublicKey } from "@/api/user.js"
|
|
||||||
export const Crypto = {
|
|
||||||
AES: {
|
|
||||||
encrypt: function (plaintext, secretKey) {
|
|
||||||
return CryptoJS.AES.encrypt(plaintext, secretKey).toString();
|
|
||||||
},
|
|
||||||
decrypt: function (ciphertext, secretKey) {
|
|
||||||
const bytes = CryptoJS.AES.decrypt(ciphertext, secretKey);
|
|
||||||
return bytes.toString(CryptoJS.enc.Utf8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
export const Encrypt = {
|
|
||||||
encrypt: async function (plaintext) {
|
|
||||||
let PublicKey = null;
|
|
||||||
if (sessionStorage.getItem('PublicKey')) {
|
|
||||||
PublicKey = sessionStorage.getItem('PublicKey');
|
|
||||||
} else {
|
|
||||||
let res = await getPublicKey();
|
|
||||||
if (res.IsSuccess) {
|
|
||||||
PublicKey = res.Result
|
|
||||||
sessionStorage.setItem('PublicKey', res.Result)
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let encryptor = new JSEncrypt()
|
|
||||||
encryptor.setPublicKey(PublicKey)
|
|
||||||
return encryptor.encrypt(JSON.stringify(plaintext))
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
import { Encrypt, Crypto } from "./crypto";
|
|
||||||
export const encryptConfig = async (config) => {
|
|
||||||
let secretKey = randomRange(10, 43);
|
|
||||||
let encryptSecretKey = await Encrypt.encrypt(secretKey); // 密钥进行非对称加密
|
|
||||||
if (encryptSecretKey) {
|
|
||||||
config.headers['X-Encrypted-Key'] = encryptSecretKey;
|
|
||||||
}
|
|
||||||
if (config.data && Object.prototype.toString.call(config.data) === '[object Object]') {
|
|
||||||
Object.keys(config.data).forEach(key => {
|
|
||||||
config.data[key] = Crypto.AES.encrypt(config.data[key], secretKey)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
const randomRange = (min, max, charStr) => {
|
|
||||||
var returnStr = "",
|
|
||||||
range;
|
|
||||||
if (typeof max == 'string') {
|
|
||||||
charStr = max;
|
|
||||||
}
|
|
||||||
range = ((max && typeof max == 'number') ? Math.round(Math.random() * (max - min)) + min : min);
|
|
||||||
charStr = charStr || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
||||||
for (var i = 0; i < range; i++) {
|
|
||||||
var index = Math.round(Math.random() * (charStr.length - 1));
|
|
||||||
returnStr += charStr.substring(index, index + 1);
|
|
||||||
}
|
|
||||||
return returnStr;
|
|
||||||
}
|
|
||||||
|
|
@ -4,7 +4,7 @@ import store from '@/store'
|
||||||
import router from '@/router'
|
import router from '@/router'
|
||||||
import WHITELIST from "./whiteList"
|
import WHITELIST from "./whiteList"
|
||||||
import moment from 'moment-timezone';
|
import moment from 'moment-timezone';
|
||||||
import { encryptConfig } from "@/utils/encrypt"
|
console.log(moment.tz.guess())
|
||||||
axios.defaults.withCredentials = false
|
axios.defaults.withCredentials = false
|
||||||
const service = axios.create({
|
const service = axios.create({
|
||||||
baseURL: '/api',
|
baseURL: '/api',
|
||||||
|
|
@ -16,16 +16,13 @@ var path
|
||||||
// var lang = store.state.lang.language
|
// var lang = store.state.lang.language
|
||||||
|
|
||||||
service.interceptors.request.use(
|
service.interceptors.request.use(
|
||||||
async config => {
|
config => {
|
||||||
path = router && router.app && router.app._route && router.app._route.path
|
path = router && router.app && router.app._route && router.app._route.path
|
||||||
config.headers['Content-Type'] = 'application/json;charset=UTF-8'
|
config.headers['Content-Type'] = 'application/json;charset=UTF-8'
|
||||||
var language = zzSessionStorage.getItem('lang')
|
var language = zzSessionStorage.getItem('lang')
|
||||||
config.headers['Accept-Language'] = language === 'en' ? 'en-US,en;q=0.5' : 'zh-CN,zh;q=0.9'
|
config.headers['Accept-Language'] = language === 'en' ? 'en-US,en;q=0.5' : 'zh-CN,zh;q=0.9'
|
||||||
config.headers['TimeZoneId'] = moment.tz.guess()
|
config.headers['TimeZoneId'] = moment.tz.guess()
|
||||||
if (config.ENCRYPT) {
|
if (store.getters.token) {
|
||||||
config = await encryptConfig(config)
|
|
||||||
}
|
|
||||||
if (store.getters.token && !config.clearToken) {
|
|
||||||
config.headers.Authorization = `Bearer ${store.getters.token}`
|
config.headers.Authorization = `Bearer ${store.getters.token}`
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue