Авторизация с JWT

Cat's identification token

Авторизация с JSON Web Token позволяет единожды пройти аутентификацию и авторизацию с логином и паролем, получить JWT токен доступа, и далее в каждом новом запросе отправлять только токен, содержащий необходимую серверу информацию о пользователе.

Освежить знания про JWT можно тут.

Токен доступа и токен обновления

Access and refresh tokens

Токен доступа подтверждает, что пользователь имеет права на доступ к ресурсу. Срок жизни токена доступа обычно 5-15 минут.

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

По шагам процесс выглядит так:

  1. Клиент получает токен доступа и токен обновления, например, в ответ на запрос с логином и паролем.
  2. Запрашивая ресурсы, требующие авторизации, клиент отправляет полученный на шаге 1 токен доступа.
  3. Когда срок жизни токена доступа истекает, клиент отправляет запрос с токеном обновления и получает новую пару токенов.
jwt-tokens-rq
Шаг 1. Получение клиентом пары токенов
access-token-auth
Шаг 2. Авторизация с токеном доступа

Заголовок Authorization с типом Bearer Token

Ранее мы уже научились посылать запрос с указанием заголовка Authorization с типом Basic Auth для передачи пары логин/пароль.

В случае отправки JWT токена необходимо выбрать тип авторизации Bearer Token и вставить полученный от сервера токен в поле Token.

Фактически заголовок примет вид:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiJ1c2VyIiwicm9sZSI6IlNVQiIsImV4cCI6MTcxNjIzOTAyMn0.
JU-BsGZtEezJE58cxQSoAVmuxeleDSrMXzhjOApqQ5k
Postman authorization header type bearer
Authorization Type Bearer Token в Postman

Срок жизни JWT токена

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

Для проверки срока жизни токен необходимо расшифровать, например на jwt.io, и сравнить значение в поле exp в payload с текущим моментом времени. Если значение меньше, значит токен протух - срок его жизни истёк.

Формат времени в поле exp представляет собой Unix Time, или количество секунд, прошедших с 1 января 1970 года.

Для приведения к более лёгкой для восприятия системе исчисления времени можно воспользоваться онлайн конвертерами.

Jwt expired unix time
Конвертация Unix времени на jwt.io при наведении курсора
Задача
Задача доступна премиум пользователям!
Sidebar arrow

ВВЕДЕНИЕ

БАЗОВЫЕ ЗНАНИЯ

УРОВНИ ТЕСТИРОВАНИЯ

UI ТЕСТИРОВАНИЕ

ТЕХНИКИ ТЕСТ ДИЗАЙНА

ТЕСТОВАЯ ДОКУМЕНТАЦИЯ

АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ

POSTMAN

БАЗЫ ДАННЫХ

ТЕСТИРОВАНИЕ РЕЛИЗА

АНАЛИЗ РАБОТЫ ПРИЛОЖЕНИЯ

ПОДГОТОВКА К СОБЕСЕДОВАНИЮ

Как составить резюме Топ вопросов Собеседование