30 lines
3.1 KiB
Markdown
30 lines
3.1 KiB
Markdown
## 1. Backend foundation
|
||
|
||
- [x] 1.1 Добавить зависимости bcrypt, JWT, Passport JWT и cookie parsing; валидировать `JWT_SECRET`; настроить credentialed CORS, cookie parser и глобальную валидацию.
|
||
- [x] 1.2 Добавить Prisma-модели User и Session с миграцией для нормализованного email, password hash и состояния refresh-сессии.
|
||
- [x] 1.3 Заменить глобальный error filter и OpenAPI-схемы ошибок минимальным контрактом `application/problem+json`; удалить baseline hello-world API.
|
||
|
||
## 2. Authentication API
|
||
|
||
- [x] 2.1 Реализовать в AuthModule DTO-валидацию, нормализацию email, bcrypt-обработку пароля и регистрацию/login с созданием независимой Session.
|
||
- [x] 2.2 Реализовать выпуск HS256 access/refresh JWT, refresh rotation/reuse revocation, жизненный цикл cookie и идемпотентный logout.
|
||
- [x] 2.3 Добавить Passport JWT strategy и guard для access token, затем задокументировать endpoints `/auth/register`, `/auth/login`, `/auth/refresh`, `/auth/logout` и `/auth/me`.
|
||
- [x] 2.4 Добавить минимальный backend auth-flow test: конфликт регистрации, неверные учётные данные, refresh reuse, logout и защищённый current profile.
|
||
|
||
## 3. Generated API contract
|
||
|
||
- [x] 3.1 Запустить backend и перегенерировать коммитируемые frontend OpenAPI-типы из `/api/docs-json`.
|
||
|
||
## 4. Frontend authentication
|
||
|
||
- [x] 4.1 Добавить зависимости react-hook-form, Zod и resolver; создать shared custom email validator и схемы auth-форм.
|
||
- [x] 4.2 Реализовать auth feature с in-memory session state, credentialed typed requests, startup refresh, сериализованным refresh/retry и очисткой cache.
|
||
- [x] 4.3 Заменить login и registration placeholders формами, отключаемыми во время pending, с client-only подтверждением пароля и локализованными ошибками.
|
||
- [x] 4.4 Добавить учитывающую сессию public/protected маршрутизацию с безопасными return paths и заменить settings placeholder на logout.
|
||
- [x] 4.5 Добавить минимальные frontend-тесты для подтверждения пароля при регистрации и redirect защищённого маршрута.
|
||
|
||
## 5. Documentation and verification
|
||
|
||
- [x] 5.1 Задокументировать реализованный пользовательский поток authentication и MVP-ограничения в `docs/features/authentication.md`.
|
||
- [x] 5.2 Запустить backend lint, tests и build; frontend lint, typecheck, tests, build и no-todo check; провалидировать OpenSpec change.
|