Сервисы
auth-service
Аутентификация Conveyor — выпуск JWT, WebAuthn (passkeys), подтверждение email и отправка писем.
auth-service отвечает за вход пользователей: выпускает JWT, поддерживает passkeys (WebAuthn), подтверждение email и отправку служебных писем. api проксирует на него запросы /auth.
На какие вопросы отвечает раздел: Как настраивается вход и passkeys? Откуда берутся письма подтверждения? Что влияет на сессии?
Цель
Единая точка аутентификации и управления сессиями для редактора и API.
Задачи
- логин по паролю и беспарольный вход через WebAuthn (passkeys);
- выпуск и обновление access/refresh JWT;
- регистрация и подтверждение email, отправка писем по SMTP.
Требования
- PostgreSQL (пользователи, сессии);
- Vault (шифрование чувствительных данных; миграция на MIT-лицензированные аналоги — TBD в каталоге);
- SMTP-сервер для писем (в dev — Mailcatcher).
Ограничения
- зона сервиса: аутентификация, JWT и сессии. Права/роли (CASL) и видимость разделов задаёт api по capabilities.
- управление пользователями может быть выключено на уровне стенда (
USER_MANAGEMENT_ENABLED).
Настройки и переменные окружения
| Переменная | Зачем | На что влияет | По умолчанию |
|---|---|---|---|
AUTH_SERVICE_HTTP_LISTEN | Адрес прослушивания HTTP | Порт/интерфейс сервиса | 0.0.0.0:3000 |
JWT_ACCESS_TTL | Срок access-токена | Как часто нужен refresh | 15m |
JWT_REFRESH_TTL | Срок refresh-токена | Длительность сессии | 7d |
JWT_ACCESS_COOKIE_NAME | Имя cookie с access JWT | Хранение токена в браузере | access_token |
WEBAUTHN_RP_ID | Relying Party ID | Привязка passkey к домену | localhost |
WEBAUTHN_RP_NAME | Имя RP | Отображение при регистрации passkey | Conveyor |
WEBAUTHN_ORIGIN | Доверенный origin | Какой фронтенд может использовать passkey | https://localhost:3000 |
SMTP_HOST / SMTP_PORT | Адрес SMTP | Куда отправлять письма | mailcatcher / 1025 |
SMTP_USER / SMTP_PASS | Учётные данные SMTP | Авторизация на SMTP | — |
SMTP_FROM | Адрес отправителя | Поле From в письмах | noreply@flowforge.local |
SMTP_SECURE | TLS для SMTP | Шифрование соединения (порт 465) | false |
EMAIL_CONFIRM_BASE_URL | База ссылки подтверждения | Куда ведёт ссылка из письма | https://localhost:3000 |
DATABASE_URL | Подключение к Postgres | Хранение пользователей/сессий | — |
VAULT_ADDR / VAULT_TOKEN | Доступ к Vault | Шифрование чувствительных данных | http://vault:8200 / — |
Дальше
- Регистрация и аутентификация: со стороны пользователя.
- Безопасность: модель защиты.