Отправка токена 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
- Открытый почтальон.
- перейдите в поле "заголовок".
- там можно увидеть пробелы "значение ключа".
- в ключе типа "Авторизация".
- в типе значения "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.