Бессонница - используя OATH2.0, как я могу получить токен доступа в переменную?

Я пытаюсь позвонить в конечную точку авторизации, используя OAuth2 с типом клиента "Учетные данные клиента" - мой вызов выполнен успешно - это не проблема. Однако теперь я хочу взять возвращенный токен доступа и поместить его в переменную, чтобы я мог использовать его в последующих вызовах без необходимости вручную вырезать и вставить другие мои вызовы.

Когда вызов возвращается, я вижу токен, который я хочу скопировать в поле "Токен доступа" в нижней части окна OAuth2 (срок действия которого истекает через 42 минуты), И я вижу его в поле "Авторизация" на вкладке "Таймлайн" Результаты. Я просто не могу понять, как получить к нему доступ, поэтому я могу сбросить его в переменную.

5 ответов

Гифка в FAQ идет очень быстро и не содержит пошаговых инструкций. Кроме того, я не нашел ответа ни на YouTube, ни на других сайтах, поэтому решил поделиться пошаговыми инструкциями по объединению запросов в Insomnia.

  1. Создайте запрос POST для получения токена доступа. Обратите внимание, что мой токен доступа возвращается в поле с именем "access_token", мы будем использовать его на шаге 3. Поле возврата может быть другим.

  1. Создайте второй запрос GET для API, который вернет вам данные. В моем случае я хотел получить всех пользователей из интерфейса SCIM. Во вкладке Bearer введите Response => Body Attribute (Insomnia заполнится автоматически).

  1. Щелкните мышью на атрибуте Request => Body (тот, который вы только что ввели) и выберите сообщение аутентификации в раскрывающемся списке "Request" (это тот, который вы создали на шаге 1) и в "Filter (JSONPath)" введите $.[имя атрибута], где имя атрибута - это ответ, возвращаемый при вызове аутентификации. В моем случае это был access_token, см. Шаг 1 для вашего.

Наслаждаться!!

  1. Щелкните No Environment > Manage Environments, и вы увидите базовую среду в JSON.
  2. Так как это в JSON, создайте пару { "jwt_token": "Response => Body Attribute" }"для вашей переменной токена. Обратите внимание, что"Response => Body Attribute"необходимо настроить. Когда вы вводите ответ, нажмите пробел и эта опция должна быть доступна.
  3. После того, как вы выберете "Response => Body Attribute", он будет отображаться с некоторой тарабарщиной и с красным фоном, не беспокойтесь... просто щелкните его, чтобы настроить. Убедитесь, что у вас такая же настройка.

Однако... вам нужно изменить свой запрос на маршрут, по которому вы получаете токен с сервера, и еще одна вещь - этофильтр (JSONPath или XPath), который меняет его в зависимости от ваших настроек.

У вас должен быть токен, хранящийся в переменнойjwt_token, и вы можете использовать эту переменную налюбом маршруте.

Пример:

Если вы хотите сохранить токен, который возвращается в ответе, в переменную среды, вы можете использовать цепочку запросов в своей переменной среды. Посмотрите этот URL для получения более подробной информации об этом https://support.insomnia.rest/article/43-chaining-requests...

Вот что ты мог сделать (что я сделал)

  1. Создать переменную среды
  2. В качестве значения переменной используйте атрибут Response => Body и в разделе " Фильтр" (JSONPath или XPath) выберите атрибут токена в теле ответа (если это "токен", введите $.token).
  3. После этого просто поместите переменную окружения токена, где вам это нужно, в следующих запросах.

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

Вы можете добавить его в качестве заголовка, сославшись на результаты запроса OAuth2:

Другие вопросы по тегам