Принцип и сценарии
Глоссарий
- гость не аутентифицированный посетитель
- пользователь аутентифицированный посетитель
Назначение и требования к токенам
Access token
- Короткоживущий многоразовый токен
- JWT
- За счет короткого времени жизни дополнительной проверки не требуется
Refresh token
- Предназначен для одноразового получения нового комплекта токенов
- Токен должен храниться в базе данных и содержать следующую информацию:
- Разрешение на генерацию токена
- предыдущий refresh token
- аутентификация пользователя
- регистрация пользователя
- Разрешение на генерацию токена
- Т.к. токен одноразовый и периодически обновляется, то нельзя использовать sessionStorage для его хранения
Технические сценарии
Гость на сайте
Гость логинится
Гость регистрируется
Пользователь выполняет запрос с корректным токеном
Пользователь выполняет запрос с некорректным токеном
Если refresh token уже был ранее использован, то это может означать что токен ранее утек, потому
пользователю надо об этом сообщить, и, возможно заблокировать все refresh token'ы, выпущенные
благодаря потенциально утекшему
Пользователь обновляет токены
Если refresh token уже был ранее использован, то это может означать что токен ранее утек, потому
пользователю надо об этом сообщить, и, возможно заблокировать все refresh token'ы, выпущенные
благодаря потенциально утекшему
Пользователь логинится
При переходе пользователя на страницу логина его перенаправляет на главную
Пользователь регистрируется
Регистрация недоступна для аутентифицированного пользователя