aliservice / think-apisign
There is no license information available for the latest version (1.0.0) of this package.
1.0.0
2023-01-29 03:14 UTC
Requires
- topthink/framework: ^6.0
This package is auto-updated.
Last update: 2025-03-29 01:11:57 UTC
README
Postman
const salt = 'default'
function randomString(len) {
len = len || 32;
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
var maxPos = $chars.length;
var pwd = '';
for (i = 0; i < len; i++) {
pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
}
function ksort(o){
let sorted = {}
let keys = Object.keys(o)
keys.sort()
keys.forEach((key)=>{
if(typeof o[key] != 'object' && o[key] && o[key] !== '0'){
sorted[key] = o[key]
}
})
return sorted
}
function makeSign(request_data,timestamp,randStr){
data = ksort(request_data)
let string = ""
Object.keys(data).forEach((key)=>{
string += key + '=' + data[key] + '&'
})
string += salt + timestamp + randStr
return CryptoJS.MD5(string).toString().toLocaleUpperCase()
}
let request_data = pm.request.method.toLocaleUpperCase() === 'POST' ? JSON.parse(pm.request.body.raw) : pm.request.url.query.toObject()
const timestamp = Date.parse(new Date()).toString().substring(0,10)
const randStr = randomString(10)
const sign = makeSign(request_data,timestamp,randStr);
pm.request.headers.upsert({key:"timestamp",value:timestamp})
pm.request.headers.upsert({key:"randStr",value:randStr})
pm.request.headers.upsert({key:"sign",value:sign})