Почтальон sendRequest использовать авторизацию из коллекции

Я могу отправить запрос в сценарии предварительного запроса Почтальона, как показано ниже. То, что я хотел бы сделать, это использовать ту же аутентификацию, которая установлена ​​в Коллекции, чтобы в случае изменения Коллекции мой sendRequest следовал комплекту.

pm.sendRequest({
    url: 'http://some_url',
    method: 'GET',
    header: {
        'content-type': 'application/json',
        'authorization': 'Basic ' + auth
    },

}, function (err, res) {
    // do something
});

Причина, по которой я хочу это сделать, заключается в том, что я хочу поделиться коллекцией с партнерами и клиентами, и каждый из них может использовать свой тип аутентификации. На данный момент я настроил свою коллекцию для использования базовой аутентификации и использовал переменные для имени пользователя и пароля. Если, например, партнер переключает коллекцию на использование OAuth, ему также необходимо обновить все мои сценарии перед запросом, чтобы использовать OAuth.

Если pm.sendRequest() смог унаследовать аутентификацию так же, как и каждый запрос в коллекции, тогда партнер мог бы внести изменения в одном месте.

2 ответа

Решение

Это будет работать, если вы выполняете sendRequest после запроса, который также имеет заголовок авторизации:

pm.sendRequest({
    url: 'http://some_url',
    method: 'GET',
    header: {
        'content-type': 'application/json',
        'authorization': request.headers["authorization"]
    },

}, function (err, res) {
    // do something
});

Информацию об объекте запроса можно найти здесь.

ОБНОВЛЯТЬ:

Я не знаю, не слишком ли поздно, но у меня это сработало, создав такой запрос:

      const host = pm.environment.get("host");
const path = "/oauth/token";
        
pm.sendRequest({
  url: host + path,
  method: 'POST',
  auth: {
    type: "basic",
    basic: {
      username: 'BASIC_USER',
      password: 'BASIC_PASS'
    }     
  },
  headers: {
    Accept: "*/*"
  },
  body: {
    mode: 'urlencoded',
    urlencoded: [
      { key: "grant_type", value: "password" },
      { key: "username", value: "VALUE1" },
      { key: "password", value: "VALUE2" }
    ]
  }
}, function (err, res) {
  if (err === null) {
    pm.environment.set("token", res.json()["access_token"]);
  }
});

Надеюсь, это может быть кому-то полезно.

Другие вопросы по тегам