Отправка токена JWT в заголовках с почтальоном

Я тестирую реализацию безопасности на основе токена JWT, основываясь на следующей статье . Я успешно получил токен с тестового сервера. Я не могу понять, как заставить клиентскую программу Chrome POSTMAN REST отправить токен в заголовок.

postman screenshot

Мои вопросы таковы:

1) Я использую имя правого заголовка и/или интерфейс POSTMAN?

2) Нужно ли мне кодировать токен на базе 64? Я думал, что могу просто отправить токен обратно.

Ответ 1

Для имени заголовка запроса просто используйте авторизацию. Место носитель перед токеном. Я просто попробовал, и это работает для меня.

Авторизация: Носитель TOKEN_STRING

Каждая часть JWT представляет собой кодированное значение base64url.

Ответ 2

Вот изображение, если это помогает :)

Postman

Обновить:

Команда почтальона добавила "токен на предъявителя" на "вкладку авторизации": Updated postman

Ответ 3

Я добавляю к этому вопросу немного интересный совет, который может помочь вам, ребята, тестировать JWT Apis.

Это очень просто.

Когда вы входите в систему, в своей Api (конечной точке входа) вы сразу же получите свой токен, и, как сказал @mick-cullen, вам придется использовать JWT в своем заголовке как:

Authorization: Bearer TOKEN_STRING

Теперь, если вам нравится автоматизировать или просто сделать вашу жизнь проще, ваши тесты вы можете сохранить токен как глобальный, который вы можете вызвать на всех остальных конечных точках, как:

Authorization: Bearer {{jwt_token}}

На почтальоне: Затем сделайте глобальную переменную в почтальоне как jwt_token = TOKEN_STRING.

В конечной точке входа: Чтобы сделать это полезным, добавьте в начало вкладки "Тесты":

var data = JSON.parse(responseBody);
postman.clearGlobalVariable("jwt_token");
postman.setGlobalVariable("jwt_token", data.jwt_token);

Я предполагаю, что ваш api возвращает токен как json в ответе как: { "jwt_token": "TOKEN_STRING" }, может быть какая-то вариация.

В первой строке вы добавляете ответ на переменную данных. Очистите свой глобальный И присвойте значение.

Итак, теперь у вас есть свой токен в глобальной переменной, что упрощает использование авторизации: Bearer {{jwt_token}} на всех ваших конечных точках.

Надеюсь, что этот совет поможет.


ИЗМЕНИТЬ
Что-то читать

О тестах на Postman: примеры тестирования

Командная строка: Newman

CI: интеграция с Дженкинсом

Хорошее сообщение в блоге: мастер-тест api test

Ответ 4

У меня была такая же проблема в Flask, и после того, как первые два решения были одинаковыми (Authorization: Bearer <token>), и получив это:

{
    "description": "Unsupported authorization type",
    "error": "Invalid JWT header",
    "status_code": 401
}

Мне удалось наконец решить эту проблему, используя:

Authorization: jwt <token>

Думал, что это может сэкономить некоторое время людям, которые сталкиваются с тем же.

Ответ 5

Вот как установить токен это автоматически

На ваш логин/запрос авторизации

enter image description here

Тогда для аутентифицированной страницы

enter image description here

Ответ 6

  1. Открытый почтальон.
  2. перейдите в поле "заголовок".
  3. там можно увидеть пробелы "значение ключа".
  4. в ключе типа "Авторизация".
  5. в типе значения "Bearer (пробел) your_access_token_value".

Готово!

Ответ 7

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

ключ: авторизация

значение: jwt {токен}

так просто.

Ответ 8

Как-то почтальон не работал у меня. Мне пришлось использовать расширение chrome под названием RESTED, которое действительно работало.

Ответ 9

Я сделал то, о чем говорил моплин. Но в моем случае служба отправляет JWT в заголовках ответов, как значение под ключом "Авторизация".

Authorization →Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJpbWFsIiwiZXhwIjoxNDk4OTIwOTEyfQ.dYEbf4x5TGr_kTtwywKPI2S-xYhsp5RIIBdOa_wl9soqaFkUUKfy73kaMAv_c-6cxTAqBwtskOfr-Gm3QI0gpQ

Что я сделал, сделайте глобальную переменную в почтальоне как

кнопочная > JWT
значение- > blahblah

в login request- > вкладке Tests, добавьте

postman.clearGlobalVariable("jwt");
postman.setGlobalVariable("jwt", postman.getResponseHeader("Authorization"));

в других запросах выберите вкладку "Заголовки" и дайте

key- > Авторизация

значение → {{JWT}}

Ответ 10

Для людей, которые используют плагин Wordpress Advanced Access Manager, чтобы открыть аутентификацию JWT.

Поле заголовка должно поставить аутентификацию вместо авторизации

enter image description here

AAM упомянул об этом в своей документации,

Заметка! AAM не использует стандартный заголовок авторизации, поскольку он пропускается большинством серверов Apache....


Надеюсь, это поможет кому-то! Спасибо за другие ответы мне тоже очень помогли !!

Ответ 11

enter image description here

Все остальное т.е. Параметры, Авторизация, Тело, Сценарий предварительного запроса, Тесты пустые, просто откройте вкладку Заголовки и добавьте, как показано на рисунке. То же самое и для запроса GET.