[EPIC-IAD-001] Core Authentication & Session Rotation
Проектирование контура управления сессиями и Dual Token JWT валидации
NoteКраткая карточка эпика
- Эпик: (EPIC-IAD-001)
- Компоненты: auth-identity-service, Mobile App, Redis Blacklist, Auth_db
- Статус: Готово к реализации
- Направление связи: Клиент \(\leftrightarrow\) IAD \(\leftrightarrow\) Redis
Бизнес-контекст и цель (Business Context)
Для защиты персональных данных и исключения атак повторения (Replay Attacks) необходимо реализовать отказоустойчивый механизм аутентификации на базе пары токенов (короткоживущий Access + длинный Refresh) с обязательным сохранением слепков сессий в СУБД и поддержкой черных списков токенов в оперативной памяти.
Список атомарных задач:
- [Migrations] Инициализация схемы сессий [Метод 1]: Создание таблиц пользователей, паролей и активных сессий (
001_init_auth_tables.sql). - [Backend] Метод ручной регистрации [Метод 2]: Реализация эндпоинта ручного создания аккаунта с хэшированием паролей Argon2 (
register.py). - [Backend] Метод аутентификации [Метод 3]: Реализация эндпоинта проверки учетных данных и генерации первой пары токенов (
login.py). - [Backend] Метод ротации токенов [Метод 4]: Реализация gRPC-сервиса обновления сессии с аннулированием старого Refresh-токена (
refresh.py). - [Backend] Метод отзыва сессии [Метод 5]: Реализация эндпоинта принудительного логаута с занесением токена в Redis Blacklist (
logout.py). - [Frontend] Экран входа и регистрации [Экран 1]: Верстка интерфейса и подключение стейт-менеджера Provider для отправки данных авторизации (
auth_screen.dart). - [Frontend] Менеджер Secure Storage [Скрипт 1]: Реализация безопасного хранения токенов на Android/Web устройствах (
token_secure_storage.dart).