Аутентификация (Authentication)
Зачем нужен
Вход и регистрация пользователей. Поддержка нескольких способов авторизации.
Способы входа
| Способ | Описание | Как работает |
|---|---|---|
| Email + пароль | Классическая регистрация | Форма с ФИО, логином, email, паролем |
| Telegram Mini App | Из Telegram бота | Автоматическая авторизация через initData |
| Telegram Widget | Из браузера | Всплывающее окно Telegram |
| Dev Auth | Для разработки | Мгновенный вход без пароля (отключен в продакшне) |
Регистрация
- Имя (отображаемое)
- Логин (автоматическая транслитерация из имени)
- Пароль (≥ 6 символов)
- Подтверждение пароля
Валидация
- Имя ≥ 2 символа
- Логин: 3-30 символов,
a-z,0-9,_ - Email: корректный формат
- Пароли совпадают
- Проверка уникальности логина (debounced)
Безопасность
| Механизм | Описание |
|---|---|
| JWT | Access + Refresh токены |
| HS256 | Подпись токенов |
| SHA-256 | Хеширование паролей |
| HMAC-SHA-256 | Верификация Telegram данных |
| AES-256-GCM | Шифрование ПД в реестре |
Actions (4)
| Action | Описание |
|---|---|
register | Регистрация нового пользователя |
login | Вход по email/паролю |
loginTelegram | Вход через Telegram |
fetchMe | Получить данные текущего пользователя |