如何使用请求模块保留302重定向上的身份验证标头

时间:2019-05-06 23:58:40

标签: node.js authentication redirect request

我正在使用NodeJS和Request模块在​​我的应用程序中进行API调用。我要与之集成的新第三方服务的基本URL随每个发行版而变化(即'https://release-23.service.com/api/v1')。

它们为所有重定向到最新基本URL的端点提供静态基本URL。问题是我还需要在请求中包含一个基本的auth标头。重定向发生时,不会保留此auth标头,因此最终结果是401状态代码。

请求是否支持在重定向时保留auth标头?

我一直在尝试向选项对象添加followRedirect: false并从响应标头捕获并重试location,但是理想情况下,我想将Request的重定向功能与auth标头一起使用完好无损,这样我就不会冒破坏可能依赖于重定向的现有逻辑的风险。

这是现有代码的精简版本:

const request = require('request');

const options = {
  uri: 'https://www.service.com/api/v1',
  headers: {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
  },
  auth: {
      username: 'username',
      password: 'password'
  },
  json: true,
  method: 'GET',
  timeout: 30000
};

request(options, function (err, response) {
  if (err) {
    return err;
  }
  console.log(response.body);
});

0 个答案:

没有答案