在Postman中,我正在测试的API在授权头中返回一个Bearer令牌:
authorization: "Bearer eyJ0..."
我正在尝试将令牌值保存在环境变量中:
pm.test("Authorization token is present", function () {
pm.response.to.have.header("authorization");
// Save auth token to environment
const tokenHeader = pm.response.headers.get("authorization")
const parts = tokenHeader.split('Bearer')
const token = parts[parts.length - 1]
pm.environment.set("authToken", `${token}`);
// testing: it prints eyJ0... as expected
console.log(pm.environment.get("authToken"))
});
麻烦的是,当我试图在其他调用中注入这个值时,而不是eyJ0...
,我只得到一个省略号:“...”。如果我点击环境快速查看按钮(UI右上角附近的小眼睛),值也显示为“...”。但是,如果我选择它来尝试编辑,则显示eyJ0...
的真实值。
我错过了什么?
2条答案
按热度按时间zqry0prt1#
我想明白了。问题出在我的脚本上。我用分隔符“Bearer”分割字符串
这意味着给定输入
Bearer eyJ0
,数组变为['Bearer', ' eyJ0']
。令牌字符串开头的空格是问题所在。我需要修改脚本以:iszxjhcz2#
对我来说,这与一个简单的Sping Boot 身份验证完美结合
pm.globals.set(“授权”,pm.response.headers.get(“授权”));