Почтальон не смог получить ответ на авторизованный звонок с JWT - PullRequest
0 голосов
/ 04 ноября 2018

Я установил простой API в .NET Core, защищая его с помощью JWT, организованного Identity Server 4. Когда я получаю доступ к конечной точке с атрибутом [Авторизовать] , я получаю ожидаемый ответ (401 неавторизовано ). Закомментированный, он возвращает фактические данные, как и предполагалось.

Теперь, когда добавлен заголовок с ключом Авторизация и значением Носитель XXX , где XXX - мой полученный токен, я сразу получаю сообщение об ошибке, сообщающее, что

Не удалось получить ответ

и четыре предложения о том, что делать. Я отключил сертификат SSL, и прокси-сервер не нужен, так как в базовой конфигурации все выполняется локально. Тайм-аут не релевантен (установлен в 0, и ошибка возникает немедленно).

Это оставляет меня с абстрактной опцией * backend не работает должным образом. Я не сделал ничего особенного, просто следуя инструкциям на сайте IS. Мое впечатление, подкрепленное немедленной ошибкой, состоит в том, что я сделал кое-что менее яркое в Почтальоне. Кроме того, консоль IS ничего не говорит об ошибках, что, кроме того, усиливает моё подозрение, что проблема связана с ней.

Я пытался установить разные полномочия на вкладке ниже URL. Тот же результат для каждого звонка. Я проверил файл hosts , и он выглядит так

127.0.0.1 localhost

Я позаботился о том, чтобы в конце вставленного токена не было разрыва строки в соответствии с этой статьей . Я попытался установить ключ Content-type в application / json et.al. как предложено здесь . Я проверил, что у меня нет конфликтующих переменных среды, как показано здесь . И т.д. - в основном любая информация, статья и подсказка, которые я нашел.

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

В чем может быть причина, что с этим можно сделать и, по крайней мере, где я могу получить больше вдохновения о том, как действовать?

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Недавно я столкнулся с этой проблемой и исправил ее, выполнив запрос Авторизация на вкладке Авторизация вместо вкладки Заголовки .

Перейдите на вкладку Авторизация , измените тип на Носитель и вставьте свой токен.


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

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

Вот пример тестового кода, который может нуждаться в модификации в зависимости от вашей конкретной конечной точки:

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

После отправки запроса на вход в систему необходимо заполнить переменную среды {{accessToken}}, и вы можете использовать {{accessToken}} в качестве значения авторизации вместо необработанной строки токена.

0 голосов
/ 07 ноября 2018

Чтобы сузить эту проблему, проверьте, является ли токен действительным и правильно ли скопирован токен, сравните токен, отправленный из запроса, и оригинальный токен.

...