Техническое задание: Модернизация системы аутентификации

Требуется выполнить рефакторинг текущей системы авторизации, основанной на "липких" сессиях, и перейти на современную схему с использованием JWT (JSON Web Tokens).

Основные цели

  • Повышение безопасности системы аутентификации.
  • Внедрение механизма бесшовного обновления токенов для пользователя.
  • Обеспечение контроля и управления активными сессиями.

Ключевые требования к реализации

Архитектура токенов

  • Внедрить два типа токенов:
    • Access Token: Короткоживущий (например, 15-30 минут), используется для доступа к защищенным ресурсам API.
    • Refresh Token: Долгоживущий (например, несколько дней или недель), используется исключительно для получения новой пары токенов.
  • Реализовать ротацию Refresh Token: при каждом использовании refresh-токена для получения новой пары, старый refresh-токен должен становиться недействительным, а выдаваться новый.

Безопасность и управление

  • Реализовать хранение "семейств" (families) refresh-токенов, привязанных к устройству или сессии пользователя.
  • Обеспечить возможность отзыва (revoke) всех токенов конкретного пользователя или конкретного семейства токенов.
  • Реализовать защиту от повторного использования (replay attack) refresh-токенов. Система должна отслеживать, что каждый refresh-токен используется только один раз.
  • Настроить процесс безопасного обновления токенов по истечении срока действия access-токена с помощью валидного refresh-токена.

Технические аспекты

  • Обеспечить корректную обработку ошибок (просроченный access, невалидный или отозванный refresh).
  • Продумать стратегию хранения refresh-токенов на стороне сервера (например, в базе данных или специализированном хранилище).
  • Документировать изменения в API и механизме аутентификации.

Создание AI-визуализаций интерьера виллы

Требуется генерация высококачественных изображений и moodboard для визуализации интерьера виллы с использованием искусственного интеллекта. Работа разовая, направлена на создание атмосферы и концепции.