string/object user.login(object parameters)
此方法用于登录到API并生成认证令牌。
使用此方法, 你同时还需要使用注销操作, 以防止产生大量未关闭的会话记录。
此方法仅适用于那些尚未进行身份验证,且不属于任何已启用多因素身份验证用户组的用户。必须在json-rpc请求中没有auth参数的情况下调用此方法。
(object)
包含用户名和密码的参数。
该方法接受以下参数。
参数 | 类型 | 描述 |
---|---|---|
password (必填) |
string | 用户密码 |
username (必填) |
string | 用户名 |
userData | flag | 返回关于认证用户的信息 |
(string/object)
如果使用 userData
参数, 将返回一个包含认证成功用户信息的对象。
除了用户标准信息,其他返回信息如下:
属性 | 类 | 描述 |
---|---|---|
auth_type | integer | 用户的默认身份验证。 有可能的返回值,请参阅身份验证对象的 authentication_type 属性。 |
debug_mode | integer | 用户是否启用了调试模式。 有可能的返回值,请参阅用户组对象的 debug_mode 属性。 |
deprovisioned | boolean | 用户是否属于已取消配置的用户组。 |
gui_access | string | 前端认证使用的用户身份验证方法。 有可能的返回值,请参阅用户组对象的 gui_access 属性。 |
mfaid | integer | 使用MFA方式登录时的ID。 如果全局禁用MFA或对用户所属的所有用户组禁用MFA,则返回 “0”。 |
secret | string | 随机32个字符的字符串,在用户登录时生成。 |
sessionid | string | 认证令牌,在后续的API请求中必须使用。 |
type | integer | 用户类型。 有可能的返回值,请参阅角色对象的 type 属性。 |
userip | string | 用户的IP地址。 |
如果一个用户在一次或多次失败的尝试之后成功地进行了身份验证,该方法将返回attempt_clock
、attempt_failed
和attempt_ip
属性的当前值,然后重新设置它们。
如果不使用userData
参数,该方法将返回认证令牌。
所生成的认证令牌请务必保存,并在以下JSON-RPC请求的auth
参数中使用,在使用HTTP认证时也需要它。
单用户认证。
请求:
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"username": "Admin",
"password": "zabbix"
},
"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,
"debug_mode": 0,
"userip": "127.0.0.1",
"gui_access": "0",
"sessionid": "5b56eee8be445e98f0bd42b435736e42"
},
"id": 1
}
CUser::login() in ui/include/classes/api/services/CUser.php.