2022 Zabbix中国峰会
2022 Zabbix中国峰会

登录用户

描述

string/object user.login(object parameters)

此方法用于登录到API并生成身份验证令牌.

使用此方法, 你同时需要使用 注销 方法, 防止产生大量未关闭的会话记录.

此方法仅适用于未认证用户,同时在JSON-RPC请求中不能带有auth参数.

参数

(object) 包含用户名和密码的参数。

该方法接受以下参数。

参数 类型 描述
password
(必填)
字符串 用户密码。
username
(必填)
字符串 用户名。
userData flag 返回关于认证用户的信息。
user
(已废弃)
字符串 此参数已弃用,请改用“username”。
用户名。

返回值

(string/object) 如果使用了 userData 参数,返回一个对象,其中包含有关经过身份验证的用户的信息。

除了 标准用户属性,还返回以下信息:

属性 类型 描述
debug_mode integer 是否为用户启用了调试模式。

参考 用户组对象debug_mode 属性了解可能的值列表。
gui_access integer 用户对前端的认证方法。

参考 用户组对象gui_access 属性了解可能的值列表。
sessionid string 认证令牌,必须在随后的 API 请求中使用。
type integer 用户类型。

参考 角色对象type 属性了解可能的值列表。
userip string 用户的 IP 地址。

如果用户在一次或多次失败尝试后成功通过身份验证,该方法将返回 attempt_clockattempt_failedattempt_ip 属性的当前值,然后重置它们。

如果未使用 userData 参数,该方法返回一个认证令牌。

生成的认证令牌应被记住,并在随后的 JSON-RPC 请求的 auth 参数中使用。在使用 HTTP 认证时也需要。

示例

单用户认证

单用户认证.

请求:

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

返回:

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

请求已验证用户的信息

认证并返回有关用户的额外信息。

请求:

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

响应:

{
           "jsonrpc": "2.0",
           "result": {
               "userid": "1",
               "username": "Admin",
               "name": "Zabbix",
               "surname": "Administrator",
               "url": "",
               "autologin": "1",
               "autologout": "0",
               "lang": "ru_RU",
               "refresh": "0",
               "theme": "default",
               "attempt_failed": "0",
               "attempt_ip": "127.0.0.1",
               "attempt_clock": "1355919038",
               "rows_per_page": "50",
               "timezone": "Europe/Riga",
               "roleid": "3",
               "type": 3,
               "userip": "127.0.0.1",
               "debug_mode": 0,
               "gui_access": 0,
               "sessionid": "5b56eee8be445e98f0bd42b435736e42"
           },
           "id": 1
       }

参考

来源

CUser::login() in ui/include/classes/api/services/CUser.php.