user.login

Описание

строка/объект user.login(объект параметры)

Этот метод позволяет входить в API и генерировать токен аутентификации.

При использовании этого метода вам также необходимо выполнять user.logout для предотвращения создания большого количество записей открытых сессий.

Параметры

Этот метод доступен не прошедшим аутентификацию пользователям и его необходимо вызывать без параметра auth в JSON-RPC запросе. Начиная с Zabbix 2.4 этот метод вернет ошибку, если параметр auth задан.

(объект) Параметры, которые содержат имя пользователя и пароль.

Этот метод принимает следующие параметры.

Параметр Тип Описание
password
(требуется)
строка Пароль пользователя. Не используется при HTTP аутентификации.
user
(требуется)
строка Имя пользователя.
userData флаг Возврат информации о прошедшем аутентификацию пользователе.

При использовании HTTP аутентификации, имя пользователя в API запросе должно совпадать с именем пользователя в заголовке Authorization. Пароль не проверяется и его можно не указывать.

Возвращаемые значения

(строка/объект) Если используется параметр userData, возвращает объект, который содержит информацию о прошедшем аутентификацию пользователе.

В дополнение к стандартным свойствам пользователя, возвращается следующая информация:

Свойство Тип Описание
debug_mode логическое Активирован ли пользователю режим отладки.
gui_access целое число Метод аутентификации пользователя в веб-интерфейсе.

Обратитесь к свойству gui_access в объекте группы пользователей для получения списка возможных значений.
node объект Локальная нода пользователя.

Этот объект имеет следующие свойства:
name - (строка) Имя ноды;
nodeid - (строка) ID ноды.
sessionid строка Токен аутентификации, который требуется использовать в последующих API запросах.
userip строка IP адрес пользователя.

Если пользователь успешно прошел аутентификацию после одной или нескольких неудачных попыток, этот метод вернет текущие значения свойств attempt_clock, attempt_failed и attempt_ip и затем сбросит их.

Если параметр userData не используется, этот метод возвращает лишь токен аутентификации.

Сгенерированный токен аутентификации необходимо запомнить и использовать в параметре auth в последующих JSON-RPC запросах. Это также требуется делать при использовании HTTP аутентификации.

Примеры

Аутентификация пользователя

Аутентификация пользователя.

Запрос:

{
           "jsonrpc": "2.0",
           "method": "user.login",
           "params": {
               "user": "Admin",
               "password": "zabbix"
           },
           "id": 1
       }

Ответ:

{
           "jsonrpc": "2.0",
           "result": "0424bd59b807674191e7d77572075f33",
           "id": 1
       }

Запрос информации об авторизовавшемся пользователе

Аутентификация и получение дополнительной информации о пользователе.

Запрос:

{
           "jsonrpc": "2.0",
           "method": "user.login",
           "params": {
               "user": "Admin",
               "password": "zabbix",
               "userData": true
           },
           "id": 1
       }

Ответ:

{
           "jsonrpc": "2.0",
           "result": {
               "userid": "1",
               "alias": "Admin",
               "name": "Zabbix",
               "surname": "Administrator",
               "url": "",
               "autologin": "1",
               "autologout": "0",
               "lang": "ru_RU",
               "refresh": "0",
               "type": "3",
               "theme": "default",
               "attempt_failed": "0",
               "attempt_ip": "127.0.0.1",
               "attempt_clock": "1355919038",
               "rows_per_page": "50",
               "debug_mode": true,
               "userip": "127.0.0.1",
               "node": {
                   "name": "- unknown -",
                   "nodeid": null
               },
               "sessionid": "5b56eee8be445e98f0bd42b435736e42",
               "gui_access": "0"
           },
           "id": 1
       }

Смотрите также

Исходный код

CUser::login() в frontends/php/api/classes/CUser.php.