Как автоматически отправить токен JWT, собранный в предыдущем запросе в Почтальоне - PullRequest
0 голосов
/ 22 февраля 2019

Я создаю REST API (Symfony 4, FOS Rest bundle) и для тестирования использую приложение Postman.Проблема в том, что при входе в систему я получаю токен JWT, а позже, при каждом другом запросе, я должен передать его обратно как часть заголовка авторизации, как токен на предъявителя.И так как этот токен меняется при каждом входе в систему, я должен вручную копировать / вставлять значение токена после каждого входа в систему (когда срок действия токена истекает).

Можно ли этого как-то избежать и сделать автоматически?

1 Ответ

0 голосов
/ 22 февраля 2019

Во-первых, после успешной авторизации - входящий в систему вызов вернул токен JWT, который должен быть сохранен в некоторой переменной.При редактировании запроса на вход в систему есть вкладка «Тесты».Здесь мы можем поместить код JavaScript, который будет выполняться после выполнения запроса, поэтому мы будем вводить код следующим образом:

var jsonData = JSON.parse(responseBody);
if(jsonData.token) {
    pm.globals.set("jwt-token", jsonData.token);
}

Или, более короткая версия, как предложил @Danny Dainton:

pm.globals.set("jwt-token", pm.response.json().token)

Мы собираем ответ и сохраняем значение "token" в глобальной переменной с именем "jwt-token".

Если вы используете более старую версию Postman, этот код должен выглядеть немного иначе - переменная хранения должна выглядеть так:

postman.setEnvironmentVariable("jwt-token", jsonData.token); 

(Здесь хранение в качестве переменной среды против глобальной переменной в примере выше -оба типа должны работать. Используйте то, что вам нужно).

Итак, теперь значение токена будет сохранено.Тогда мы должны использовать его с другими запросами.Отредактируйте все остальные запросы, которые должны передавать токен JWT.Перейдите на вкладку «Авторизация», выберите тип авторизации «Bearer Token» и в качестве значения просто введите {{jwt-token}} .

Снова, если вы используете старую версию Postman и donвместо этого типа «Bearer Token» перейдите на вкладку «Headers», добавьте новый заголовок с ключом «Authorization» и установите для него значение Bearer {{jwt-token}}

Вот и все.Теперь вам нужно выполнить запрос на вход в систему только один раз, и токен JWT будет автоматически использоваться во всех других запросах.

А если у вас возникнут какие-либо проблемы, вы можете использовать консоль для печати отладочной информации.Добавьте в ваш код, например:

console.log(jsonData.token);

И из главного меню перейдите в Вид -> Показать консоль почтальона , чтобы открыть окно консоли, где вы получите вывод console.log.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...