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