签名验证
前后端请求实现签名机制,可以使数据的交互更加安全。
过程
- 对全部需要传递的参数进行排序;
- 组合数据键名 + encryptKey;
- 对组合结果进行 md5 加密,加密后参与提交;
- 发起数据请求;
- 后端用约定的encryptKey进行数据签名并比对
参考代码
post : function(url, sets, success){
sets.data = this.sign(sets.data);
uni.request({
url : url,
data : sets.data,
method : 'POST',
success : (res)=>{
success(res.data);
}
});
},
sign : function (data) {
var keys = [];
Object.keys(data).sort().map((key) => {keys.push(key);});
keys.push(this.token);
var sign = md5.md5(keys.join('-'));
data.sign = sign;
return data;
}