如何从响应文本提取Access Token并设置为Postman变量?
解决方案与建议
一、正确提取Access Token的Postman预请求脚本
先确认你的令牌接口返回的JSON结构类似如下格式:
{ "access": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refresh": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." }
不需要用startswith("access"),直接解析响应JSON提取字段即可,以下是可用脚本:
pm.sendRequest({ url: "你的令牌接口URL", method: "POST", body: { mode: "raw", raw: JSON.stringify({ // 填入令牌请求所需参数,比如用户名、密码 username: pm.environment.get("username"), password: pm.environment.get("password") }), headers: { "Content-Type": "application/json" } } }, function (err, res) { if (err) { console.log(err); return; } // 解析响应JSON const responseJson = res.json(); // 提取access token并设置为环境变量(也可设为全局变量) pm.environment.set("access_token", responseJson.access); // 若后续需要自动刷新,可同时保存refresh token // pm.environment.set("refresh_token", responseJson.refresh); });
如果你的响应里access令牌的字段名是access_token而非access,把responseJson.access替换为responseJson.access_token即可。
二、Access Token与Refresh Token的使用建议
- 仅用Access Token测试完全可行:测试阶段只要Access Token未过期,直接将其作为Bearer令牌调用API即可满足需求。
- Refresh Token的核心作用:当Access Token过期后,无需重新输入账号密码,用Refresh Token调用令牌接口就能获取新的Access Token,避免频繁登录,适用于正式环境的用户体验优化。
- 是否需要同时使用:如果你的API的Access Token有效期较短(比如15分钟),建议保存Refresh Token并后续添加自动刷新逻辑;如果有效期足够长(比如数小时),测试阶段可以暂时忽略Refresh Token,等正式部署时再集成。
三、排查startswith("access")失败的原因
你之前的方法失效,大概率是错误处理了响应内容——比如直接对整个响应文本做开头判断,但正确逻辑应该是先解析JSON结构。如果你的响应不是标准JSON(比如是access=xxx&refresh=yyy的表单格式),可以用正则表达式提取:
const responseText = res.text(); const accessToken = responseText.match(/access=([^&]+)/)[1]; pm.environment.set("access_token", accessToken);
内容的提问来源于stack exchange,提问作者cP830000
相关产品推荐
相关产品推荐

