|
<< Click to Display Table of Contents >> Navigation: API MasterSCADA 4D > Подключение к исполнительной системе по JSON > HTTP API MasterPLC > Общие методы > /Methods/Login |
Проверяет учётные данные и создаёт сессию. Может сменить пароль, переиспользовать текущую сессию или войти администратором без лицензии.
HTTP: POST /Methods/Login
{
"login": "sa",
"password": "5f4dcc3b5aa765d61d8327deb882cf99"
}
Поле |
Тип |
Обязательное |
По умолчанию |
Описание |
|---|---|---|---|---|
login |
string |
условно |
"" |
Имя пользователя; не требуется в анонимном режиме (нет пользователей и AD) |
password |
string |
нет |
"" |
Пароль (хеш, если disableHashPassword = false) |
sessionId |
integer |
нет |
0 |
Текущая сессия; нужна при reuseSession |
reuseSession |
bool |
нет |
false |
Заменить пользователя в текущей сессии, сохранив sessionId |
newPassword |
string |
нет |
— |
Если задан, выполняется смена пароля (в password — старый пароль) |
securityUnit |
bool |
нет |
false |
Админская сессия: не тратит лицензию, но без прав WriteData, CreateMonitoredDataItems, PublishData |
hostName |
string |
нет |
"" |
Имя хоста клиента |
{
"serverTime": 1745410360467,
"startMnemoscheme": "18095",
"groups": ["Роль 1"],
"shifts": [],
"rights": {
"58278": {
"rights": {},
"windows": {
"Окно 1": {
"rights": { "OpenWindow": { "Роль 1": 9 } }
}
}
}
},
"sessionId": 319824816,
"user": "sa",
"fullName": "",
"clientAddress": "127.0.0.1",
"hostName": "",
"sessionExpireTime": 0,
"sessionIdleTime": 0,
"currentShift": { "ShiftName": "", "WorkDays": 0, "StartTime": 0, "EndTime": 0 },
"projectId": "b1f0…",
"projectVersion": 12,
"projectSessionId": 3,
"isMaster": true,
"status": 20,
"features": 0,
"code": 0
}
Поле |
Тип |
Условие |
Описание |
|---|---|---|---|
serverTime |
integer |
успех |
Время входа, Unix time в мс |
startMnemoscheme |
string |
успех |
Стартовое окно оператора |
groups |
array<string> |
успех |
Роли пользователя (кроме _All) |
shifts |
array<string> |
успех |
Смены пользователя |
rights |
object |
успех, есть роли |
Права на объекты/окна/элементы: objectId → { rights, windows }, где значение права — { roleName: маска } |
поля блока сессии |
— |
успех |
См. общий контракт |
поля состояния сервера |
— |
успех |
См. общий контракт |
errorText |
string |
ошибка |
Текст ошибки входа |
code |
integer |
всегда |
Результат метода |
•Ответ, помимо старой справки (startMnemoscheme, sessionId, groups, rights), содержит serverTime, shifts, блок сессии (user, fullName, clientAddress, hostName, sessionExpireTime, sessionIdleTime, currentShift) и блок состояния сервера.
•groups — массив; rights присутствует только при наличии ролей.
•Коды ошибок: OpcUa_BadShutdown (конфигурация не запущена); OpcUa_BadServiceUnsupported (нет проекта или недоступна опция securityUnit); OpcUa_BadUserAccessDenied_NotAllowedAddress (адрес запрещён); OpcUa_BadUserAccessDenied (не указан логин или отказ при принудительном выходе); OpcUa_BadIdentityTokenInvalid (неизвестный пользователь); прочие — по проверке пароля, смены пароля и смены. Текст — в errorText.
•В последующих запросах протокола sessionId передаётся как параметр; при недействительной сессии методы возвращают OpcUa_BadSessionIdInvalid (0x80250000) — нужно заново вызвать Login.