string/object user.login(object parameters)
此方法允许用户登录到API并generate身份验证令牌。
使用此方法时,还需要执行user.logout,以防止生成大量打开的会话记录。
此方法仅适用于不属于任何启用了多因素身份验证的用户组的身份未验证用户。 调用此方法时,JSON-RPC请求中必须不包含auth
参数。
(object)
包含用户名和密码的参数。
该方法接受以下参数。
(string/object)
如果使用了 userData
参数,则返回一个object,其中包含有关已认证用户的信息。
除了包含在用户中的信息外,还返回以下信息:
属性 | 数据类型 | 描述 |
---|---|---|
auth_type | integer | 用户的默认认证方式。 可能值的列表,请参阅认证-object中的 authentication_type 属性。 |
debug_mode | integer | 是否为用户启用了调试模式。 可能值的列表,请参阅用户组中的 debug_mode 属性。 |
deprovisioned | boolean | 用户是否属于一个配置。 |
gui_access | string | 用户前端认证方式。 可能值的列表,请参阅用户组中的 gui_access 属性。 |
mfaid | integer | 用户登录时使用的MFA method的ID。 如果全局或用户所属的所有用户组禁用了MFA,则返回"0"。 |
secret | string | 随机32字符string,在用户登录时生成。 |
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",
"userdirectoryid": "0",
"type": 3,
"userip": "127.0.0.1",
"debug_mode": 0,
"gui_access": "0",
"mfaid": "1",
"deprovisioned": false,
"auth_type": 0,
"sessionid": "5b56eee8be445e98f0bd42b435736e42",
"secret": "cd0ba923319741c6586f3d866423a8f4"
},
"id": 1
}
CUser::login()
在 ui/include/classes/api/services/CUser.php 中。