正在从Postman脚本保存授权响应标头

zdwk9cvp  于 2023-04-20  发布在  Postman
关注(0)|答案(2)|浏览(158)

在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...的真实值。

我错过了什么?

zqry0prt

zqry0prt1#

我想明白了。问题出在我的脚本上。我用分隔符“Bearer”分割字符串

const parts = tokenHeader.split('Bearer')

这意味着给定输入Bearer eyJ0,数组变为['Bearer', ' eyJ0']。令牌字符串开头的空格是问题所在。我需要修改脚本以:

// Include the space in the delimiter (or just split on ' ')
const parts = tokenHeader.split('Bearer ')
iszxjhcz

iszxjhcz2#

对我来说,这与一个简单的Sping Boot 身份验证完美结合
pm.globals.set(“授权”,pm.response.headers.get(“授权”));

相关问题