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

30 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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.