Handler: LoginByPassword
Что произойдёт при вызове endpoint LoginByPassword: сверить кредиты, выписать JWT с уникальным jti и учесть активный токен.
1. Назначение
Канонический сценарий обработки Endpoint LoginByPassword
(LoginByPasswordCommand). Единственная ручка без проверки права — помечена
[AllowAnonymous], иначе войти было бы нечем.
2. Сценарий вызова
- Найти пользователя (UserSpec) по
Login. Не найден —401(не раскрывая, логин или пароль неверны). - Сверить
Password. На этапе разработки — как открытый текст (хеш отложен, см. ADR-SRV-006). Не совпал —401. - Сгенерировать
jti(UUID v7) и JWT (несётjti,IcdUserId,IcdUserLogin); срок жизни — из конфигурации. - Записать активный токен (UserTokenSpec:
Jti,IssuedAt,ExpiresAt); заодно подчистить истёкшие активные записи. - Вернуть
LoginByPasswordResultс токеном вLoggedInPayload.
Права здесь не проверяются (вход). Формирование контекста и claims — при последующих запросах.
Структурные связи
Использует
- Доменная сущность Пользователь
- Доменная сущность Токены сессии
- Ограниченный контекст Оцифровка информационных карт
- API-контракт Endpoint: LoginByPassword
Используется
- API-контракт Endpoint: LoginByPassword
Связанные артефакты
Документы
- Доменная сущность Пользователь
- Доменная сущность Токены сессии
- API-контракт Endpoint: LoginByPassword