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 都不可用");
}
posted @ 2026-04-13 10:44  码生序  阅读(14)  评论(0)    收藏  举报