写一段postman对请求进行加签脚本,涉及url的params和body
时间: 2024-02-01 11:13:28 浏览: 171
下面是一个示例的加签脚本,用于对请求进行签名验证:
```javascript
// 定义签名密钥和算法
const secretKey = 'my-secret-key';
const algorithm = 'sha256';
// 获取请求参数和请求体
const requestParams = pm.request.url.query.toObject();
const requestBody = pm.request.body.raw;
// 对请求参数和请求体进行排序和序列化
const serializedParams = Object.keys(requestParams).sort().map(key => `${key}=${encodeURIComponent(requestParams[key])}`).join('&');
const serializedBody = requestBody ? requestBody : '';
// 生成待签名字符串
const stringToSign = `${pm.request.method.toUpperCase()}\n${pm.request.url.getPath()}?${serializedParams}\n${serializedBody}`;
// 使用加密算法对待签名字符串进行加密
const hmac = CryptoJS.HmacSHA256(stringToSign, secretKey);
const signature = CryptoJS.enc.Base64.stringify(hmac);
// 将签名添加到请求头中
pm.request.headers.add({key: 'Signature', value: signature});
```
上述脚本假设请求的签名密钥为 `my-secret-key`,签名算法为 SHA256。它首先获取请求的 URL 参数和请求体,并对它们进行排序和序列化。然后使用这些序列化后的字符串生成待签名字符串。最后使用加密算法对待签名字符串进行加密,并将签名添加到请求头中。请注意,这里使用了 CryptoJS 库来进行加密。
阅读全文