|
@@ -21,7 +21,8 @@ import VXETable from 'vxe-table'
|
|
import 'vxe-table/lib/index.css'
|
|
import 'vxe-table/lib/index.css'
|
|
|
|
|
|
import {removeToken} from './utils/auth'
|
|
import {removeToken} from './utils/auth'
|
|
-import {getBrowserToken} from './utils/commonFuc' // get token from cookie
|
|
|
|
|
|
+import {getBrowserToken} from './utils/commonFuc'
|
|
|
|
+import {sm2 as sm222, sm2} from "sm-crypto"; // get token from cookie
|
|
Vue.prototype.$moment = moment
|
|
Vue.prototype.$moment = moment
|
|
Vue.prototype.$echarts = echarts
|
|
Vue.prototype.$echarts = echarts
|
|
Vue.use(VXETable)
|
|
Vue.use(VXETable)
|
|
@@ -53,6 +54,11 @@ VXETable.setup({
|
|
validArgs: 'obsolete' // 将自定义校验参数还原为 Function(rule, cellValue, callback)
|
|
validArgs: 'obsolete' // 将自定义校验参数还原为 Function(rule, cellValue, callback)
|
|
})
|
|
})
|
|
|
|
|
|
|
|
+// 公钥Q
|
|
|
|
+let publicKey2 = '041967638ca43d4577d8dba166bff4437fde944270101f398a95b846ec2f8177d09f8abc5d62b6cd2c7216274d7abe0c8e04b0bb691207a32dd2e12d6bd2798672'
|
|
|
|
+// 私钥D
|
|
|
|
+let privateKey1 = '27ce6eec39dbf3b564a77c4da1e129fe1ba01a92f6d61055a33ed14ffcbc949e'
|
|
|
|
+
|
|
Vue.prototype.$axios.interceptors.request.use(
|
|
Vue.prototype.$axios.interceptors.request.use(
|
|
config => {
|
|
config => {
|
|
// get请求映射params参数
|
|
// get请求映射params参数
|
|
@@ -64,19 +70,21 @@ Vue.prototype.$axios.interceptors.request.use(
|
|
}
|
|
}
|
|
if (config.method === 'post' || config.method === 'put') {
|
|
if (config.method === 'post' || config.method === 'put') {
|
|
if (config.url!='/getMailCode'){
|
|
if (config.url!='/getMailCode'){
|
|
|
|
+ // 参数加密
|
|
let encryptParam = doEncrypt(config.data.toString())
|
|
let encryptParam = doEncrypt(config.data.toString())
|
|
- let result = 'secretData='+encryptParam
|
|
|
|
|
|
+ // 参数签名
|
|
|
|
+ let paramSign = doSign(config.data.toString())
|
|
|
|
+ let result = 'secretData='+encryptParam+'¶mSign='+paramSign
|
|
config.data = result
|
|
config.data = result
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- return config
|
|
|
|
|
|
|
|
-// console.log(config)
|
|
|
|
-// if (getBrowserToken()) { // 判断是否存在token,如果存在的话,则每个http header都加上token
|
|
|
|
-// config.headers['Authorization'] = getBrowserToken()
|
|
|
|
-// sessionStorage.setItem('user', getBrowserUser())
|
|
|
|
-// }
|
|
|
|
-// return config
|
|
|
|
|
|
+ if (getBrowserToken()) { // 判断是否存在token,如果存在的话,则每个http header都加上token
|
|
|
|
+ let tokenStr = doEncrypt(getBrowserToken())
|
|
|
|
+ config.headers['Authorization']= tokenStr
|
|
|
|
+ config.headers['TokenSign']= doSign(getBrowserToken())
|
|
|
|
+ }
|
|
|
|
+ return config
|
|
},
|
|
},
|
|
error => {
|
|
error => {
|
|
// do something with request error
|
|
// do something with request error
|
|
@@ -85,7 +93,6 @@ Vue.prototype.$axios.interceptors.request.use(
|
|
}
|
|
}
|
|
)
|
|
)
|
|
|
|
|
|
-
|
|
|
|
function getBrowserUser() {
|
|
function getBrowserUser() {
|
|
var user = "";
|
|
var user = "";
|
|
var ca = document.cookie.split(';');
|
|
var ca = document.cookie.split(';');
|
|
@@ -232,8 +239,7 @@ export function doEncrypt(msgString) {
|
|
let sm2 = require('sm-crypto').sm2;
|
|
let sm2 = require('sm-crypto').sm2;
|
|
// 1 - C1C3C2; 0 - C1C2C3; 默认为1
|
|
// 1 - C1C3C2; 0 - C1C2C3; 默认为1
|
|
let cipherMode = 1
|
|
let cipherMode = 1
|
|
- // 公钥Q
|
|
|
|
- let publicKey2 = '04298364ec840088475eae92a591e01284d1abefcda348b47eb324bb521bb03b0b2a5bc393f6b71dabb8f15c99a0050818b56b23f31743b93df9cf8948f15ddb54'
|
|
|
|
|
|
+
|
|
// 加密结果
|
|
// 加密结果
|
|
let encryptData = sm2.doEncrypt(msgString, publicKey2, cipherMode);
|
|
let encryptData = sm2.doEncrypt(msgString, publicKey2, cipherMode);
|
|
// 加密后的密文前需要添加04,后端才能正常解密
|
|
// 加密后的密文前需要添加04,后端才能正常解密
|
|
@@ -251,8 +257,7 @@ export function doDecryptStr(enStr) {
|
|
let sm2 = require('sm-crypto').sm2;
|
|
let sm2 = require('sm-crypto').sm2;
|
|
// 1 - C1C3C2; 0 - C1C2C3; 默认为1
|
|
// 1 - C1C3C2; 0 - C1C2C3; 默认为1
|
|
let cipherMode = 1
|
|
let cipherMode = 1
|
|
- // 私钥
|
|
|
|
- let privateKey1 = '79507190f53fb88717551c5a784f3f54627cbcb92d35a531ce4630f12fe62a40'
|
|
|
|
|
|
+
|
|
// 加密后的密文,需要前去掉04。因为doDecrypt中自行添加了04,后端加密代码也自行添加了04
|
|
// 加密后的密文,需要前去掉04。因为doDecrypt中自行添加了04,后端加密代码也自行添加了04
|
|
let en = enStr.data.substr(2)
|
|
let en = enStr.data.substr(2)
|
|
// 解密结果
|
|
// 解密结果
|
|
@@ -261,3 +266,13 @@ export function doDecryptStr(enStr) {
|
|
let objData = JSON.parse(doDecrypt)
|
|
let objData = JSON.parse(doDecrypt)
|
|
return objData;
|
|
return objData;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// 签名:
|
|
|
|
+export function doSign(msgString) {
|
|
|
|
+ let sm2 = require('sm-crypto').sm2;
|
|
|
|
+ // 1 - C1C3C2; 0 - C1C2C3; 默认为1
|
|
|
|
+ let cipherMode = 1
|
|
|
|
+ // 签名
|
|
|
|
+ let sign = sm2.doSignature(msgString,privateKey1, { hash:true, der:true })
|
|
|
|
+ return sign;
|
|
|
|
+}
|