建议收藏:5分钟搞定 Apifox 登录自动鉴权,研发效率翻倍

在前端开发和接口调试中,最烦人的事莫过于:Token 过期了,得重新登录 -> 复制新 Token -> 手动粘贴到各个接口请求头里。
今天带大家彻底解决这个痛点!通过 Apifox 的脚本功能,实现登录即同步,让所有接口自动带上最新的 Token。
🛠️ 第一步:登录接口设置变量
首先,我们需要在“登录接口”跑完后,把返回的 Token 存起来。
- 打开登录接口的编辑页面。
- 点击 「后置操作」 -> 「添加后置操作」 -> 「公共脚本/自定义脚本」 。

📝 第二步:编写自动化脚本
在脚本框中粘贴以下代码。这段脚本会自动解析响应体,提取 Token 并写入环境变量。
// 1. 校验响应体是否能正常解析为JSON(基础前置校验)
pm.test("响应体为合法JSON格式", function () {
pm.response.to.be.json;
});
// 2. 解析响应JSON数据
const responseData = pm.response.json();
// 3. 分步校验响应数据是否包含有效token,并提取设置环境变量
pm.test("登录成功且提取到有效Token", function () {
// 校验接口返回状态正常(status === 1)
pm.expect(responseData.status).to.equal(1, "接口返回状态异常,status不为1");
// 校验data字段存在且不为空
pm.expect(responseData.data).to.exist.and.not.be.empty, "响应中缺少有效data字段";
// 校验data中包含非空的token
pm.expect(responseData.data.token).to.exist.and.not.be.empty, "data中缺少有效token字段";
// 4. 所有校验通过,提取token并设置到环境变量ACCESS_TOKEN
const validToken = responseData.data.token;
pm.environment.set("ACCESS_TOKEN", validToken);
console.log("✅ Token已成功提取并设置到环境变量:", validToken);
});
// (可选)若需要清空无效Token的兜底逻辑:当上述测试失败时,清空环境变量中的ACCESS_TOKEN
pm.test("Token提取失败时清空环境变量", function () {
try {
// 若前面的校验通过,这里不执行;若失败,捕获异常并清空Token
if (!responseData.status || !responseData.data || !responseData.data.token) {
pm.environment.set("ACCESS_TOKEN", "");
console.log("⚠️ 未提取到有效Token,已清空环境变量中的ACCESS_TOKEN");
}
} catch (e) {
pm.environment.set("ACCESS_TOKEN", "");
console.log("⚠️ 解析响应失败,已清空环境变量中的ACCESS_TOKEN:", e.message);
}
});
⚙️ 第三步:设置全局自动鉴权
提取到 Token 后,我们需要让整个项目的所有接口都自动引用它。
- 点击项目左侧根目录(或点击 「项目设置」 )。
- 找到 「Auth」 选项卡。
- 选择 「API Key」 (或 Bearer Token,取决于后端要求)。

🔗 第四步:配置变量映射
- Key 设置为:
Authorization(或后端要求的 Header 名称)。 - Value 设置为:
{{ACCESS_TOKEN}}。
💡 小贴士: 使用
{{ }}包裹变量名,是 Apifox 读取环境变量的标准写法。




✅ 第五步:实测验证
大功告成!现在我们可以测试一下效果:
- 运行登录接口:查看下方控制台,是否提示
✅ Token已成功提取。

- 访问其他业务接口:点击「发送」,查看请求头(Headers),你会发现
Authorization已经自动带上了刚才生成的 Token!

欢迎关注我的公众号【zxb的博客】!


- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 zxb
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果

