Сервисы

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-токенаКак часто нужен refresh15m
JWT_REFRESH_TTLСрок refresh-токенаДлительность сессии7d
JWT_ACCESS_COOKIE_NAMEИмя cookie с access JWTХранение токена в браузереaccess_token
WEBAUTHN_RP_IDRelying Party IDПривязка passkey к доменуlocalhost
WEBAUTHN_RP_NAMEИмя RPОтображение при регистрации passkeyConveyor
WEBAUTHN_ORIGINДоверенный originКакой фронтенд может использовать passkeyhttps://localhost:3000
SMTP_HOST / SMTP_PORTАдрес SMTPКуда отправлять письмаmailcatcher / 1025
SMTP_USER / SMTP_PASSУчётные данные SMTPАвторизация на SMTP
SMTP_FROMАдрес отправителяПоле From в письмахnoreply@flowforge.local
SMTP_SECURETLS для SMTPШифрование соединения (порт 465)false
EMAIL_CONFIRM_BASE_URLБаза ссылки подтвержденияКуда ведёт ссылка из письмаhttps://localhost:3000
DATABASE_URLПодключение к PostgresХранение пользователей/сессий
VAULT_ADDR / VAULT_TOKENДоступ к VaultШифрование чувствительных данныхhttp://vault:8200 / —

Дальше