3.1 KiB
3.1 KiB
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.