Найти в Дзене

Предварительная авторизация для запросов в Postman через Pre-Request Script

Если вы разрабатываете API с авторизацией (например посредством JWT), чтобы авторизоваться при тестировании и разработке API с помощью Postman вам приходится предварительно дергать запрос авторизации для получении куки пользователя. В какой-то момент меня это подзадолбало и я решил написать скрипт авторизации для всех запросов к разрабатываемому API в Postman. Собственно, вот сам скрипт: Немного комментариев. Функция parseJwt (token,part) нам нужна для парсинга полученного токена JWT, чтобы вытащить оттуда его expired, то есть срок, когда он "протухнет". Функция login лезет в environment (для этого правильный энвайронмент должен быть выбран и предварительно заведен) и тащит оттуда хост и имя пользователя и пароль: После этого собственно выполняется запрос для получения куки авторизации. После этого полученный токен сохраняется Постмановские глобалы. Дальше идет сам код процедуры: if (!postman.getEnvironmentVariable("artoken")) - проверяем, если в глобалах токена нет, значит он ещ

Если вы разрабатываете API с авторизацией (например посредством JWT), чтобы авторизоваться при тестировании и разработке API с помощью Postman вам приходится предварительно дергать запрос авторизации для получении куки пользователя.

В какой-то момент меня это подзадолбало и я решил написать скрипт авторизации для всех запросов к разрабатываемому API в Postman. Собственно, вот сам скрипт:

Немного комментариев.

Функция parseJwt (token,part) нам нужна для парсинга полученного токена JWT, чтобы вытащить оттуда его expired, то есть срок, когда он "протухнет".

Функция login лезет в environment (для этого правильный энвайронмент должен быть выбран и предварительно заведен) и тащит оттуда хост и имя пользователя и пароль:

После этого собственно выполняется запрос для получения куки авторизации. После этого полученный токен сохраняется Постмановские глобалы.

Дальше идет сам код процедуры:

if (!postman.getEnvironmentVariable("artoken")) - проверяем, если в глобалах токена нет, значит он еще не получен и запускаем функцию login() для, собственно, получения токена.

Если токен получен, достаем его из глобалов и смотрим протух он или нет:

if (jwtInfo.expires < 60) {...}

Если протух - снова лезем за новым токеном.