Регистрация
При регистрации пользователь указывает:- Имя пользователя (3–50 символов)
- Пароль (минимум 6 символов)
- Проверяет уникальность email и имени пользователя
- Генерирует аватар по умолчанию
- Назначает случайный скин и плащ из настроек (если заданы дефолтные)
- Хеширует пароль
- Отправляет код подтверждения email (если включена верификация)
Настройка обязательной верификации email управляется через параметр
security.require_email_verification в настройках сайта (админ-панель).Авторизация
Вход выполняется по email или имени пользователя + пароль. Система:- Находит пользователя по логину (email или username)
- Проверяет, не заблокирован ли аккаунт
- Верифицирует пароль
- Проверяет 2FA (если включена)
- Проверяет необходимость верификации устройства
- Создаёт сессию и устанавливает cookie
Сессии
Сессии хранятся в базе данных (таблицаsessions). Каждая сессия содержит:
- Токен (два склеенных UUID)
- ID пользователя
- Время истечения
- IP-адрес и User-Agent
segmenta_session). Также поддерживается передача через заголовок Authorization: Bearer <token>. Срок жизни сессии задаётся параметром security.session_lifetime_days.
OAuth-подключения
Пользователи могут привязать к аккаунту внешние сервисы:| Провайдер | Описание |
|---|---|
| Discord | Авторизация и привязка Discord-аккаунта |
| VK | Авторизация через ВКонтакте |
| Telegram | Привязка Telegram-аккаунта |
| Авторизация через Google | |
| Yandex | Авторизация через Яндекс |
Двухфакторная аутентификация (2FA)
Segmenta поддерживает TOTP-аутентификацию (Google Authenticator, Authy и др.). Процесс включения:- Пользователь запрашивает генерацию секрета
- Система возвращает секретный ключ и
otpauth-ссылку (для QR-кода) - Пользователь вводит код из приложения для подтверждения
- 2FA активируется, генерируются 8 резервных кодов
- Пользователь вводит 6-значный TOTP-код (
totpToken) - Или использует одноразовый резервный код (
backupCode)
Система верификации
Segmenta включает продвинутую систему верификации для защиты аккаунтов. Она срабатывает при подозрительных входах.Типы верификации
| Тип | Описание |
|---|---|
| soft | Мягкая проверка — пользователь может продолжить, но рекомендуется подтвердить |
| freeze | Жёсткая блокировка — аккаунт заморожен до прохождения верификации |
Триггеры
Верификация может срабатывать при:- Входе с нового устройства
- Входе из новой локации (IP/гео)
- Подозрительной активности
Методы подтверждения
- Подтверждение через email
- Подтверждение через привязанный аккаунт Discord, VK, Yandex или Google
- Ввод TOTP-кода
Набор доступных пользователю методов зависит от его привязанных аккаунтов и наличия включённой 2FA. Email доступен всегда. Подтверждение через Telegram пока не поддерживается.
Управление устройствами
Пользователи могут:- Просматривать список своих устройств
- Отмечать устройства как «доверенные»
- Удалять устройства
- Просматривать устройства любого пользователя
- Обходить верификацию (
bypassRequest) - Создавать ручную заморозку аккаунта
Сброс пароля
- Пользователь запрашивает сброс, указав email
- Система генерирует токен и отправляет ссылку на email
- Пользователь переходит по ссылке и задаёт новый пароль
- Токен одноразовый, действует 1 час