AUTH-02: Страница логина
Что сделать
Страница /login с формой входа по email + пароль.
Смотри спеку
Секции “Что видит пользователь”, “Действия”, “Состояния” в Авторизация — Логин.
Конкретно
Форма
| Поле | Тип | Placeholder |
|---|---|---|
| email input | ”Email” | |
| Пароль | password input | ”Пароль” |
- Кнопка “Войти” (primary, полная ширина)
- Ссылка “Забыли пароль?” →
/forgot-password - Логотип бренда сверху по центру
Действие “Войти”
API: POST /api/v1/admin/auth/login
Body: { email, password }
Успех:
- Сохранить
access_tokenиrefresh_tokenв localStorage - Redirect на
/(Dashboard)
Ошибки:
| Код | Что показать |
|---|---|
INVALID_CREDENTIALS (401) | “Неверный email или пароль” — под формой, красным |
ACCOUNT_DISABLED (403) | “Учётная запись деактивирована. Обратитесь к администратору.” |
ACCOUNT_LOCKED (429) | “Слишком много попыток. Попробуйте через 15 минут.” |
| Сетевая ошибка | ”Не удалось подключиться к серверу. Попробуйте позже.” |
Состояния
| Состояние | UI |
|---|---|
| Начальное | Пустая форма |
| Загрузка | Кнопка disabled, спиннер |
| Ошибка | Сообщение под формой красным |
| Блокировка | Сообщение + форма disabled |
Валидация на клиенте
- Email: обязательно, формат email
- Пароль: обязательно
Файлы
web/src/pages/auth/LoginPage.tsx— создатьweb/src/api/auth.ts— создать (функция login)
Зависит от
- AUTH-01 (BFF прокси)