Мой веб-сервис использует аутентификацию на основе маркера авторизации на основе JWT:
- HTTP-клиенты отправляют действительный POST на
/v1/auth/signIn
с действительным объектом запроса JSON (включает имя пользователя + пароль)
- Если они успешно проходят проверку подлинности, эта конечная точка отправляет обратно маркер носителя аутентификации в виде заголовка ответа HTTP, который (из curl) выглядит следующим образом:
Ответ от curl
:
HTTP/1.1 200 OK
Date: Tue, 04 Sep 2018 01:18:28 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Access-Control-Expose-Headers: Authorization
Authorization: Bearer <big_huge_string>
Content-Length: 0
- Последующие сервисные вызовы к аутентифицированным конечным точкам просто должны включить токен в качестве заголовка HTTP-запроса, ключ / имя которого
Authorization
и значение которого Bearer <xyz>
(где <xyz>
) - это <big_huge_string>
, который пришел вернуться на знак в вызове выше. Довольно простой стандартный материал JWT.
Я пытаюсь написать коллекцию Postman, которая начинается с " запроса на вход ", который успешно выполняет вход и получает токен JWT от службы, а затем добавляет соответствующий заголовок HTTP-запроса в каждый последующий звонок. Любые идеи относительно того, как я могу:
- Извлечь
<big_huge_string>
из заголовка ответа HTTP, который я получу из моего запроса на вход ?; а затем
- Как сохранить это
<big_huge_string>
как переменную и вставить это как заголовок HTTP-запроса для всех последующих вызовов?
Заранее спасибо!
Обновление
Попробовал предложение:
![enter image description here](https://i.stack.imgur.com/6efV5.png)
Становится ближе, но console.log(...)
ничего не печатает на Почтальоне (или, по крайней мере, я не знаю, где его искать). Я должен отметить, что я не , использующий версию Postman для Chrome Application, но автономное приложение / исполняемый файл (Версия 6.1.4):
Любые идеи, как / где я могу получить console.log(...)
работает? Я беспокоюсь только о том, чтобы изменить тест на:
pm.test("Can Extract JWT", function() {
var authHeader = pm.response.headers.toObject().Authorization;
pm.expect(authHeader).to.not.be.equal(null);
pm.globals.set('token', authHeader)
});
Даже не увидев, что это такое authHeader
. Есть идеи?!