Bruno自动脚本设置请求头token
Bruno 中通过 Pre‑request Script 自动生成 Token 并设置请求头
在使用 Bruno 管理 API 测试时,很多接口需要在请求头中携带动态生成的 Token(例如基于日期和密钥的 MD5 值)。手动计算并填入不仅麻烦,还容易出错。本文记录了一种在 Bruno 的 Pre‑request Script 中自动生成 Token 并设置到请求头的方案,踩过不少坑,最终稳定可用。
环境说明
- API 测试工具:Bruno(开源的 API 客户端,Postman 的轻量替代品)
- 加密库:
crypto-js(Bruno 内置,无需额外安装) - Token 生成规则:固定密钥 +
_+ 当天日期(yyyyMMdd) → MD5 哈希 → 32 位小写十六进制字符串 - 请求头字段:
Token
完整脚本
将以下代码放入请求的 Pre‑request Script 中即可:
// 确保 CryptoJS 可用
const CryptoJS = require("crypto-js");
function generateXProxyToken() {
const fixedSecret = "你的密钥"; // 替换为实际的密钥
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0');
const day = String(now.getDate()).padStart(2, '0');
const dynamicFactor = `${year}${month}${day}`;
const seed = `${fixedSecret}_${dynamicFactor}`;
return CryptoJS.MD5(seed).toString();
}
const token = generateXProxyToken();
// 兼容不同 Bruno 版本:优先使用 req.setHeader,回退到 bru.setHeader
if (typeof req.setHeader === 'function') {
req.setHeader("Token", token);
} else if (typeof bru.setHeader === 'function') {
bru.setHeader("Token", token);
} else {
console.error("无法设置请求头:req.setHeader 和 bru.setHeader 都不可用");
}
浙公网安备 33010602011771号