【问题标题】:Saving authorization response header from Postman script从 Postman 脚本保存授权响应标头
【发布时间】:2021-09-15 03:23:18
【问题描述】:

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

我错过了什么?

【问题讨论】:

    标签: postman


    【解决方案1】:

    射击我想通了。问题出在我的脚本上。我使用分隔符“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 ')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 2021-12-27
      • 2016-03-08
      相关资源
      最近更新 更多