Бессонница - используя OATH2.0, как я могу получить токен доступа в переменную?
Я пытаюсь позвонить в конечную точку авторизации, используя OAuth2 с типом клиента "Учетные данные клиента" - мой вызов выполнен успешно - это не проблема. Однако теперь я хочу взять возвращенный токен доступа и поместить его в переменную, чтобы я мог использовать его в последующих вызовах без необходимости вручную вырезать и вставить другие мои вызовы.
Когда вызов возвращается, я вижу токен, который я хочу скопировать в поле "Токен доступа" в нижней части окна OAuth2 (срок действия которого истекает через 42 минуты), И я вижу его в поле "Авторизация" на вкладке "Таймлайн" Результаты. Я просто не могу понять, как получить к нему доступ, поэтому я могу сбросить его в переменную.
5 ответов
Гифка в FAQ идет очень быстро и не содержит пошаговых инструкций. Кроме того, я не нашел ответа ни на YouTube, ни на других сайтах, поэтому решил поделиться пошаговыми инструкциями по объединению запросов в Insomnia.
- Создайте запрос POST для получения токена доступа. Обратите внимание, что мой токен доступа возвращается в поле с именем "access_token", мы будем использовать его на шаге 3. Поле возврата может быть другим.
- Создайте второй запрос GET для API, который вернет вам данные. В моем случае я хотел получить всех пользователей из интерфейса SCIM. Во вкладке Bearer введите Response => Body Attribute (Insomnia заполнится автоматически).
- Щелкните мышью на атрибуте Request => Body (тот, который вы только что ввели) и выберите сообщение аутентификации в раскрывающемся списке "Request" (это тот, который вы создали на шаге 1) и в "Filter (JSONPath)" введите $.[имя атрибута], где имя атрибута - это ответ, возвращаемый при вызове аутентификации. В моем случае это был access_token, см. Шаг 1 для вашего.
Наслаждаться!!
- Щелкните No Environment > Manage Environments, и вы увидите базовую среду в JSON.
- Так как это в JSON, создайте пару { "jwt_token": "Response => Body Attribute" }"для вашей переменной токена. Обратите внимание, что"Response => Body Attribute"необходимо настроить. Когда вы вводите ответ, нажмите пробел и эта опция должна быть доступна.
- После того, как вы выберете "Response => Body Attribute", он будет отображаться с некоторой тарабарщиной и с красным фоном, не беспокойтесь... просто щелкните его, чтобы настроить. Убедитесь, что у вас такая же настройка.
Однако... вам нужно изменить свой запрос на маршрут, по которому вы получаете токен с сервера, и еще одна вещь - этофильтр (JSONPath или XPath), который меняет его в зависимости от ваших настроек.
У вас должен быть токен, хранящийся в переменнойjwt_token, и вы можете использовать эту переменную налюбом маршруте.
Пример:
Если вы хотите сохранить токен, который возвращается в ответе, в переменную среды, вы можете использовать цепочку запросов в своей переменной среды. Посмотрите этот URL для получения более подробной информации об этом https://support.insomnia.rest/article/43-chaining-requests...
Вот что ты мог сделать (что я сделал)
- Создать переменную среды
- В качестве значения переменной используйте атрибут Response => Body и в разделе " Фильтр" (JSONPath или XPath) выберите атрибут токена в теле ответа (если это "токен", введите $.token).
- После этого просто поместите переменную окружения токена, где вам это нужно, в следующих запросах.
Я не смог решить этот вопрос, но смог обойти его, определив поля в теле запроса и полностью обходя вкладку OAuth2.