Files
specs/openspec/changes/archive/2026-08-13-add-authentication/tasks.md
T
2026-08-13 15:04:12 +03:00

3.1 KiB
Raw Blame History

1. Backend foundation

  • 1.1 Добавить зависимости bcrypt, JWT, Passport JWT и cookie parsing; валидировать JWT_SECRET; настроить credentialed CORS, cookie parser и глобальную валидацию.
  • 1.2 Добавить Prisma-модели User и Session с миграцией для нормализованного email, password hash и состояния refresh-сессии.
  • 1.3 Заменить глобальный error filter и OpenAPI-схемы ошибок минимальным контрактом application/problem+json; удалить baseline hello-world API.

2. Authentication API

  • 2.1 Реализовать в AuthModule DTO-валидацию, нормализацию email, bcrypt-обработку пароля и регистрацию/login с созданием независимой Session.
  • 2.2 Реализовать выпуск HS256 access/refresh JWT, refresh rotation/reuse revocation, жизненный цикл cookie и идемпотентный logout.
  • 2.3 Добавить Passport JWT strategy и guard для access token, затем задокументировать endpoints /auth/register, /auth/login, /auth/refresh, /auth/logout и /auth/me.
  • 2.4 Добавить минимальный backend auth-flow test: конфликт регистрации, неверные учётные данные, refresh reuse, logout и защищённый current profile.

3. Generated API contract

  • 3.1 Запустить backend и перегенерировать коммитируемые frontend OpenAPI-типы из /api/docs-json.

4. Frontend authentication

  • 4.1 Добавить зависимости react-hook-form, Zod и resolver; создать shared custom email validator и схемы auth-форм.
  • 4.2 Реализовать auth feature с in-memory session state, credentialed typed requests, startup refresh, сериализованным refresh/retry и очисткой cache.
  • 4.3 Заменить login и registration placeholders формами, отключаемыми во время pending, с client-only подтверждением пароля и локализованными ошибками.
  • 4.4 Добавить учитывающую сессию public/protected маршрутизацию с безопасными return paths и заменить settings placeholder на logout.
  • 4.5 Добавить минимальные frontend-тесты для подтверждения пароля при регистрации и redirect защищённого маршрута.

5. Documentation and verification

  • 5.1 Задокументировать реализованный пользовательский поток authentication и MVP-ограничения в docs/features/authentication.md.
  • 5.2 Запустить backend lint, tests и build; frontend lint, typecheck, tests, build и no-todo check; провалидировать OpenSpec change.