【问题标题】:Postman pre-request script for Auth, actual POST call returns Invalid TokenAuth 的 Postman 预请求脚本,实际 POST 调用返回 Invalid Token
【发布时间】:2020-08-27 16:32:00
【问题描述】:

请原谅我缺乏测试和错误逻辑。我知道我的预请求脚本正在运行,但是对于我的一生,我无法弄清楚为什么后续的 POST 请求会因“无效令牌”而失败。 我正在使用 Postman 为 auth 执行预请求脚本,它返回 200 并从 res 中提供 { id }。但!!当我设置 { token } 的 env 变量,然后从实际 POST 请求的标头调用 { token } 时,我得到一个“无效令牌”响应,401。

我检查了日志并且 POST 请求标头与我的预请求脚本中返回的 { token } 匹配。为什么会 服务器拒绝它?

const auth = pm.environment.get('auth')
const user = btoa(`${pm.environment.get('username')}:${pm.environment.get('password')}`)
if (!auth) console.log('Missing authorization endpoint')
if (!user) console.log('Missing credentials')
if (pm.environment.get('token')) pm.environment.set('token', '')

const echoPostRequest = {
  url: auth,
  method: 'POST',
  header: `Authorization: Basic ${user}`
};

pm.sendRequest(echoPostRequest, function (err, res) {
  const { id } = res
  pm.environment.set("token", id)
});

【问题讨论】:

    标签: postman postman-pre-request-script


    【解决方案1】:

    您需要引用access_token 键来设置环境变量中的值。看起来您正在将整个响应正文设置为您的令牌值。

    pm.sendRequest(echoPostRequest, function (err, res) {
      const { id } = res.json().access_token
      pm.environment.set("token", id)
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-28
      • 2021-05-11
      • 2019-04-25
      • 2022-01-16
      • 2018-02-28
      • 1970-01-01
      • 2021-10-24
      • 2021-05-03
      相关资源
      最近更新 更多