[EPIC-IAD-001] Core Authentication & Session Rotation

Проектирование контура управления сессиями и Dual Token JWT валидации

Author

IAD Domain Lead / FoodLifeCycle Team

Published

July 13, 2026

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).