Описание: Выполнить вход по логину и паролю (либо иному способу, заданному полем loginType) и получить сессию пользователя с токеном авторизации. Полученный token передаётся в заголовке Authorization при всех последующих запросах к API. Если для пользователя включена двухфакторная аутентификация, ответ будет содержать сессию в промежуточном статусе, требующем дополнительного вызова метода TwoFactorLogin.
🌐 HTTP-информация
POST/api/security/LoginContent-Type: application/jsonAuthorization — не требуется (это стартовый метод получения токена)📦 Тело запроса (Request Body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
login | string | Да* | Логин или e-mail пользователя |
password | string | Да* | Пароль пользователя |
login_type | Guid | Нет | Идентификатор способа входа (см. таблицу ниже). Если не указан, сервер сам определяет провайдера: пытается опознать логин/пароль как стандартную пару, либо (если в системе включён NTLM/LDAP) проверяет их через LDAP |
*Тело запроса — обобщённая структура IFieldValueList (плоский список пар поле/значение, без вложенности). Для обратной совместимости со старыми клиентами также поддерживаются алиасы полей Username и Password (с заглавной буквы) вместо login/password.
Значения login_type:
| Способ входа | GUID |
|---|---|
| Логин/пароль (стандартный) | 17a6ceda-cc38-416c-9f72-379d978a142f |
| NTLM / LDAP | 05ef8c8e-f104-4dc0-8887-b97c1475dd7a |
| OpenID Connect | 2506b34c-b5ca-4420-ad02-50858ed0a40b |
| Системный (служебный, для входа не через этот метод) | 62d2fd67-a521-4433-b363-d23adb533ec2 |
Пример JSON-тела:
{
"login": "admin",
"password": "P@ssw0rd"
}
Если у пользователя включена LDAP-проверка и передан login/password, но login_type не указан явно как 17a6ceda-... (пароль), сервер сначала попытается провалидировать эти же логин/пароль через LDAP.
📤 Тело ответа (Response Body)
| Поле | Тип | Описание |
|---|---|---|
id | Guid | Идентификатор сессии |
token | string | Токен авторизации — передаётся в заголовке Authorization во всех последующих запросах (значение подставляется как есть, без префикса Bearer) |
expires | string (дата/время) | Время истечения сессии |
status | int | Статус сессии: 0 — Invalid, 1 — Active (успешный вход), 2 — TwoFactorAuthenticationRequired (нужно вызвать TwoFactorLogin), 3 — PasswordInitRequired (нужно задать пароль через SetPassword), 4 — PasswordChangeRequired (пароль просрочен, нужна смена) |
user | object | Данные пользователя: id, name, email, isActive, isAdmin, license, groupList, item |
loginTypeList | array | Список доступных на портале способов входа (каждый — { id: Guid, hidden: bool, ... }, id соответствует таблице login_type выше) |
requireLoginInactivityTimeoutMinuteCount | int | Таймаут неактивности сессии, мин |
isTwoFactorAuthenticationEnabled | bool | Признак включённой двухфакторной аутентификации |
isTotpApplicationConnected | bool | Признак подключённого TOTP-приложения (иначе код для TwoFactorLogin присылается иным способом, например на e-mail) |
Если status = 2 (TwoFactorAuthenticationRequired), необходимо вызвать метод TwoFactorLogin, передав код из TOTP-приложения (или полученный иным способом). Токен token из этого ответа уже нужно использовать в заголовке Authorization при вызове TwoFactorLogin.