/Methods/Login

<< 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.