数据加密和完整性校验
This commit is contained in:
parent
700a9c6ac7
commit
02e82010ef
|
|
@ -1,5 +1,5 @@
|
||||||
// 密码强度级别常量
|
// 密码强度级别常量
|
||||||
const PASSWORD_STRENGTH_LEVELS = {
|
const STRENGTH_LEVELS = {
|
||||||
WEAK: 'weak', // 弱:一类字符
|
WEAK: 'weak', // 弱:一类字符
|
||||||
MEDIUM: 'medium', // 中:两类字符
|
MEDIUM: 'medium', // 中:两类字符
|
||||||
STRONG: 'strong', // 强:三类字符
|
STRONG: 'strong', // 强:三类字符
|
||||||
|
|
@ -38,13 +38,14 @@ const REGISTER_CONFIG = {
|
||||||
|
|
||||||
// 配置设置
|
// 配置设置
|
||||||
const CONFIG = {
|
const CONFIG = {
|
||||||
|
STRENGTH:STRENGTH_LEVELS.STRONG,//密码强度配置
|
||||||
IS_OPEN_REGISTER: REGISTER_CONFIG.PHONE_REGISTER || REGISTER_CONFIG.EMAIL_REGISTER, // 是否开启注册
|
IS_OPEN_REGISTER: REGISTER_CONFIG.PHONE_REGISTER || REGISTER_CONFIG.EMAIL_REGISTER, // 是否开启注册
|
||||||
IS_CODE_LOGIN: LOGIN_CONFIG.CODE_EMAIL_LOGIN || LOGIN_CONFIG.CODE_PHONE_LOGIN, // 是否开启短信登录
|
IS_CODE_LOGIN: LOGIN_CONFIG.CODE_EMAIL_LOGIN || LOGIN_CONFIG.CODE_PHONE_LOGIN, // 是否开启短信登录
|
||||||
// 数据设置
|
// 数据设置
|
||||||
dataSettings: {
|
dataSettings: {
|
||||||
integrityCheck: DATA_SETTINGS.CLOSE, // 数据完整性校验(true:开启,false:关闭)
|
integrityCheck: DATA_SETTINGS.OPEN, // 数据完整性校验(true:开启,false:关闭)
|
||||||
encryptRequest: DATA_SETTINGS.CLOSE, // 数据传输加密(true:开启,false:关闭)
|
encryptRequest: DATA_SETTINGS.OPEN, // 数据传输加密(true:开启,false:关闭)
|
||||||
encryptResponse: DATA_SETTINGS.CLOSE // 数据返回解密(true:开启,false:关闭)
|
encryptResponse: DATA_SETTINGS.OPEN // 数据返回解密(true:开启,false:关闭)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,7 +68,7 @@ function getCodePlaceholderText() {
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
PASSWORD_STRENGTH_LEVELS,
|
STRENGTH_LEVELS,
|
||||||
DATA_SETTINGS,
|
DATA_SETTINGS,
|
||||||
CONFIG,
|
CONFIG,
|
||||||
SM_CONFIG,
|
SM_CONFIG,
|
||||||
|
|
|
||||||
|
|
@ -73,10 +73,11 @@ service.interceptors.request.use(config => {
|
||||||
// 数据完整性校验
|
// 数据完整性校验
|
||||||
if (CONFIG.dataSettings.integrityCheck && checkIntegrity) {
|
if (CONFIG.dataSettings.integrityCheck && checkIntegrity) {
|
||||||
config.headers['Params-Hash'] = hashWithSM3AndSalt(data)
|
config.headers['Params-Hash'] = hashWithSM3AndSalt(data)
|
||||||
|
config.data = data
|
||||||
}
|
}
|
||||||
// 加密数据
|
// 加密数据
|
||||||
if (CONFIG.dataSettings.encryptRequest && encryptRequest) {
|
if (CONFIG.dataSettings.encryptRequest && encryptRequest) {
|
||||||
config.data = encryptCBC(data)
|
config.data = encryptCBC(data)
|
||||||
}
|
}
|
||||||
// 检查请求数据大小
|
// 检查请求数据大小
|
||||||
const requestSize = JSON.stringify({ url: config.url, data: data, time: Date.now() }).length
|
const requestSize = JSON.stringify({ url: config.url, data: data, time: Date.now() }).length
|
||||||
|
|
@ -106,9 +107,10 @@ service.interceptors.request.use(config => {
|
||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
service.interceptors.response.use(res => {
|
service.interceptors.response.use(res => {
|
||||||
if (res.headers.data_encrypt_response) {
|
if (res.headers.encryptresponse) {
|
||||||
res.data = JSON.parse(decryptCBC(res.data))
|
res.data = JSON.parse(decryptCBC(res.data))
|
||||||
}
|
}
|
||||||
|
console.log(res)
|
||||||
// 未设置状态码则默认成功状态
|
// 未设置状态码则默认成功状态
|
||||||
const code = res.data.code || 200
|
const code = res.data.code || 200
|
||||||
// 获取错误信息
|
// 获取错误信息
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import {PASSWORD_STRENGTH_LEVELS} from '@/utils/configure'
|
import {CONFIG} from '@/utils/configure'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} path
|
* @param {string} path
|
||||||
|
|
@ -127,7 +127,7 @@ export function validatePassword(rule, value, callback) {
|
||||||
let passedChecks = checks.filter(check => check.regex.test(value)).length
|
let passedChecks = checks.filter(check => check.regex.test(value)).length
|
||||||
|
|
||||||
let requiredChecks
|
let requiredChecks
|
||||||
switch (PASSWORD_STRENGTH_LEVELS.STRONG) {
|
switch (CONFIG.STRENGTH) {
|
||||||
case 'weak':
|
case 'weak':
|
||||||
requiredChecks = 1
|
requiredChecks = 1
|
||||||
break
|
break
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue