56 lines
2.1 KiB
Markdown
56 lines
2.1 KiB
Markdown
```js
|
|
// 引入 CryptoJS 库用于计算签名
|
|
const CryptoJS = require('crypto-js');
|
|
|
|
// 准备所需的值
|
|
const tenantId = "ImCHJ2JGEMfHFplZ"; // 替换为你的 tenantId
|
|
const tenantKey = "zwsz0SoPOmulqvH7"; // 替换为你的 tenantKey
|
|
const datetime = "2024-06-12T16:00:00+08:00"; // 固定的日期时间
|
|
|
|
// 计算 SHA256 哈希值,生成签名
|
|
const dataToSign = tenantId + datetime + tenantKey; // 将 tenantId、datetime 和 tenantKey 拼接成一个字符串
|
|
const sign = CryptoJS.SHA256(dataToSign).toString(CryptoJS.enc.Hex); // 使用 SHA256 生成签名,并将其转换为 Hex 格式
|
|
|
|
console.log("Data to be signed:", dataToSign);
|
|
console.log("Generated sign:", sign);
|
|
|
|
// 发送请求以获取 IBStoken
|
|
pm.sendRequest({
|
|
url: 'http://dev.p.cdn.10086.cn:8080/api/authentication', // 替换为获取 IBStoken 的接口地址
|
|
method: 'POST', // 使用 POST 方法
|
|
header: {
|
|
'Content-Type': 'application/json', // 指定请求体的数据类型为 JSON
|
|
'Accept': 'application/vnd.cmcdn+json' // 指定请求头接受的响应类型
|
|
},
|
|
body: {
|
|
mode: 'raw', // 设置请求体模式为 raw,即原始 JSON 字符串
|
|
raw: JSON.stringify({
|
|
"authorization": {
|
|
"tenant_id": tenantId,
|
|
"sign": sign
|
|
},
|
|
"datetime": datetime
|
|
})
|
|
}
|
|
}, function (err, res) {
|
|
// 检查请求是否出现错误
|
|
if (err) {
|
|
console.error('Error fetching IBStoken:', err); // 输出错误信息
|
|
} else {
|
|
// 解析响应体为 JSON 格式
|
|
const response = res.json();
|
|
console.log('Response received:', response); // 打印完整的响应
|
|
|
|
// 假设 IBStoken 在响应体中以 `token` 字段返回
|
|
const IBStoken = response.token;
|
|
if (IBStoken) {
|
|
// 设置全局变量 IBStoken1 为返回的 token
|
|
pm.globals.set("IBStoken1", IBStoken);
|
|
console.log('IBStoken set successfully:', IBStoken); // 打印获取到的 IBStoken
|
|
} else {
|
|
console.warn('Token not found in response.'); // 如果响应中没有 token 字段,打印警告
|
|
}
|
|
}
|
|
});
|
|
```
|