AUTH-02: Страница логина

Что сделать

Страница /login с формой входа по email + пароль.

Смотри спеку

Секции “Что видит пользователь”, “Действия”, “Состояния” в Авторизация — Логин.

Конкретно

Форма

ПолеТипPlaceholder
Emailemail 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 прокси)