Как настроить токен на предъявителя в почтальоне из переменной среды?

Я настроил коллекцию в PostMan и могу успешно сохранить значение токена-носителя в переменной среды, используя следующий тест

var jsonData = JSON.parse(responseBody);
pm.environment.set("mytoken", jsonData.token);

но как мне настроить новый вызов, чтобы использовать его?

Я пробовал добавить заголовок с

Authorization Bearer <mytoken>

но когда я публикую статус 401 Unauthorized


person Kirsten Greed    schedule 17.06.2018    source источник
comment
Эй, теперь ты можешь просто использовать pm.response.json() вместо JSON.parse(responseBody)   -  person Danny Dainton    schedule 17.06.2018


Ответы (6)


Вы можете использовать вкладку Tests для написания кода, который обновляет переменную среды, как описано в этом ссылка. Дополнительные сведения о тестовых скриптах см. здесь.

введите описание изображения здесь

Предполагая, что ответ на вызов аутентификации:

{
    "token": "woaejrlajfaoidhfalskdjfalsdijfasd"
}

Затем на вкладке Tests вы можете написать примерно так:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("token", jsonData.token);

Это будет обновлять переменную token всякий раз, когда вы запускаете вызов аутентификации. Эта переменная token должна использоваться в заголовках всех вызовов API для автоматического обновления.

Также проверьте наследование аутентификации.

person Mr_Green    schedule 20.01.2020
comment
Обратите внимание, что postman.setEnvironmentVariable устарел, для меня это не сработало в все с последней версией Postman v7.18.0. Вместо этого используйте pm.environment.set. - person jp-jee; 17.02.2020

В заголовках мне нужно было использовать

для ключа

Authorization 

для значения

Bearer {{mytoken}}
person Kirsten Greed    schedule 17.06.2018
comment
Я не ответил на этот вопрос, когда задал его. Так что просто запишите это сейчас. Другие ответы здесь могут быть лучше. - person Kirsten Greed; 26.03.2021

Резюме:

  1. Создайте переменную для хранения значения токена аутентификации в одном месте для использования во всей вашей коллекции.
  2. Установите метод авторизации по умолчанию для всей вашей коллекции.
  3. Вместо установки заголовка авторизации для каждого запроса установите авторизацию для каждого запроса, чтобы использовать «Наследовать аутентификацию от родителя», чтобы автоматически заполнить запрос правильными заголовками аутентификации.

Вы можете определять переменные в средах и коллекциях Postman, чтобы упростить ваши запросы, задав значение в одном месте и ссылаясь на него в любом количестве мест. Таким образом, вы можете создать переменную для значения вашего токена на предъявителя. Сделайте это, отредактировав свою коллекцию и перейдя на вкладку «Переменные», чтобы добавить новую переменную.

При редактировании коллекции перейдите на вкладку

Также при редактировании вашей коллекции перейдите на вкладку «Авторизация», чтобы установить авторизацию по умолчанию для всех запросов в вашей коллекции. Вы можете установить тип авторизации для вашей коллекции на предъявитель и установить значение токена как вашу определенную переменную. Это позволит вам использовать один и тот же токен авторизации для всех ваших запросов в вашей коллекции:

Также при редактировании вашей коллекции перейдите на вкладку

Затем, чтобы использовать метод авторизации коллекции по умолчанию, вам нужно будет установить запросы в этой коллекции, чтобы установить Тип авторизации на «Наследовать аутентификацию от родителя». Это позволит вам не добавлять вручную заголовок авторизации к каждому запросу. Каждый запрос в коллекции с выбранным типом авторизации «Наследовать аутентификацию от родительского» будет автоматически заполнять запрос соответствующими заголовками для авторизации, если вы определили параметр по умолчанию для коллекции, как на предыдущем изображении.

Настройте каждый запрос на использование аутентификации

Ура!

person cpetrich    schedule 06.06.2019

Как сказала Кристен. Или загрузите последнее настольное приложение почтальона, поскольку при авторизации у них есть возможность добавить токен на предъявителя в заголовок

person user7747472    schedule 17.06.2018

pm.environment.set("JWT",pm.response.json().token)

Примечание: JWT - это переменная среды, которую вы установили в своей среде.

person abrahamYonas    schedule 28.04.2021

Я использую сценарий после входа в систему на вкладке тестов, как показано ниже;

let jsonData = JSON.parse(responseBody);

pm.collectionVariables.set("jwt_token", jsonData.data.token);

введите описание изображения здесь

и создайте переменную коллекции, как показано ниже; введите описание изображения здесь

person Tuncay Elvanağaç    schedule 26.03.2021