Handler: LoginByPassword

Handler Версия: 0.1 draft

Что произойдёт при вызове endpoint LoginByPassword: сверить кредиты, выписать JWT с уникальным jti и учесть активный токен.

⟨/⟩ Исходник

1. Назначение

Канонический сценарий обработки Endpoint LoginByPassword (LoginByPasswordCommand). Единственная ручка без проверки права — помечена [AllowAnonymous], иначе войти было бы нечем.

2. Сценарий вызова

  1. Найти пользователя (UserSpec) по Login. Не найден — 401 (не раскрывая, логин или пароль неверны).
  2. Сверить Password. На этапе разработки — как открытый текст (хеш отложен, см. ADR-SRV-006). Не совпал — 401.
  3. Сгенерировать jti (UUID v7) и JWT (несёт jti, IcdUserId, IcdUserLogin); срок жизни — из конфигурации.
  4. Записать активный токен (UserTokenSpec: Jti, IssuedAt, ExpiresAt); заодно подчистить истёкшие активные записи.
  5. Вернуть LoginByPasswordResult с токеном в LoggedInPayload.

Права здесь не проверяются (вход). Формирование контекста и claims — при последующих запросах.

Связанные артефакты

Документы