0

请原谅我缺乏测试和错误逻辑。我知道我的预请求脚本正在运行,但是对于我的一生,我无法弄清楚为什么后续的 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)
});

预请求-响应

第二次请求后无效令牌

4

1 回答 1

0

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

pm.sendRequest(echoPostRequest, function (err, res) {
  const { id } = res.json().access_token
  pm.environment.set("token", id)
});
于 2020-05-12T07:32:21.510 回答