Apifox中需先在登录接口后置操作提取token为环境变量authToken(JSONPath如$.data.token),再于其他接口Headers中设Authorization: Bearer {{authToken}}(注意空格),或通过全局参数/前置脚本自动注入。

你在Apifox里调试登录接口后,想让后续所有接口自动带上刚拿到的token,不用每次手动复制粘贴——这需要把响应里的token提取出来,存成变量,再在其他接口里引用。操作本身不难,但错一个环节(比如JSONPath写错、变量类型选混、Bearer漏空格)就会导致401报错。
从登录响应中提取Token
打开你的登录接口,在右侧切换到「后置操作」标签页 → 点击「添加后置操作」→ 选择「提取变量」。
填写变量名称为 【authToken】(建议用这个命名,避免和项目其他变量冲突);变量类型选「环境变量」——如果你只在当前测试环境用,别选「全局变量」,否则开发/生产环境会互相污染。
提取来源选「Response JSON」;提取范围勾选「提取部分」;JSONPath表达式填 【$.data.token】(注意:你的真实响应结构可能不同,比如是 $.result.token 或 $.returnObject.accessToken,请按实际返回的字段路径写,点开控制台→响应体→逐层点开确认)。
点击保存,再发送一次登录请求。立刻去右下角「控制台」→「变量」页签,看 authToKen 是否已显示值。没出现?说明 JSONPath 错了,或者响应状态码不是 200,先检查登录是否真成功。
在下一个接口的Headers里引用Token
打开你要调用的受保护接口(比如 /api/user/profile),切换到「Headers」选项卡。
点击「添加参数」,参数名填 Authorization,参数值填 【Bearer {{authToken}}】(注意:Bearer 和 {{authToken}} 之间必须有一个英文空格,少这个空格服务器直接拒收)。
勾选该行左侧的启用开关,发送请求。如果返回 200,说明 token 已生效;如果仍是 401,检查控制台里 authToKen 变量值是否为空,或确认登录接口是否真的运行过(后置操作不会自动触发,必须手动发一次登录请求)。
Apifox Linux 桌面版是一款专为 Linux 开发者打造的 API 一体化工具,集接口设计、调试、测试、Mock 和文档管理于一体。它在 Linux 环境下提供稳定、高效的本地运行体验,帮助开发者实现 API 全生命周期管理,是 Linux 开发者进行接口开发与联调的高效工具。
批量让所有接口自动携带Token(全局参数方式)
方法一:全局参数统一注入(推荐用于整套接口联调)
点击右上角「管理」→「全局参数」→ 切换到「Headers」页签 → 点击「添加参数」。
参数名填 Authorization,本地值填 【Bearer {{authToken}}】(同样注意空格)→ 点击保存。
此后所有新创建的接口,只要没手动关闭 Headers 的全局继承,都会自动带上这行 Authorization 头。已有接口需手动进入其 Headers 页面,把原来手动写的 Authorization 行删掉,否则会重复发送。
方法二:环境变量 + 公共脚本(适合带过期逻辑的场景)
在「管理」→「环境」里,编辑当前环境 → 在「前置脚本」中粘贴以下代码:
if (!pm.environment.get("authToken") || !pm.environment.get("authTokenExpires") || Date.now() > pm.environment.get("authTokenExpires")) { pm.sendRequest({ url: "https://your-api.com/api/login", method: "POST", body: { mode: "raw", raw: JSON.stringify({ username: "test", password: "123" }) } }, function (err, res) { if (res.code === 200) { const data = res.json(); pm.environment.set("authToken", data.data.token); pm.environment.set("authTokenExpires", Date.now() + 2 * 60 * 60 * 1000); } }); }
这段脚本会在每次发送请求前检查 token 是否存在且未过期,失效则自动重登。注意把 URL 和登录参数替换成你的真实地址和账号。

















