string/object user.login(object parameters)
此方法允许登录到API并生成身份验证令牌。
当使用这个方法的时候, 你必须使用 注销方法,防止产生大量的开放会话记录。.
<note important>这种方法对于未经身份验证的用户是可用的,并且必须在JSON-RPC请求中没有auth
数调用。 :::
(object)
包含用户名和密码的参数。
该方法接受以下参数。
属性 类 | 说明 | |
---|---|---|
password (required) |
string | 用户密码。 未使用的HTTP身份验证。 |
user (required) |
string | 用户名。 |
userData | flag | 返回关于已认证用户的信息。 |
<note important>当使用HTTP认证时,API请求中的用户名必须与授权
头中使用的名称相匹配。密码将不会被验证,并且可以省略。 :::
(string/object)
如果使用userDat
参数,则返回包含关于经过身份验证用户信息的对象。
除了标准用户属性外, 还返回以下信息:
属性 类 | 说明 | |
---|---|---|
debug_mode | boolean | 是否为用户启用了调试模式。 |
gui_access | integer | 用户的身份验证方法到前端。 可能值的列表,请参阅用户组对象的 gui_access 属性。 |
sessionid | string | 身份验证令牌,必须在下列API请求中使用。 |
userip | string | 用户的IP地址。 |
<note tip>如果一个用户在一次或多次失败的尝试之后成功地进行了身份验证,该方法将返回attempt_clock
、尝试失败
和尝试ip
属性的当前值,然后重新设置它们。 :::
如果不使用userData
参数,该方法将返回身份验证令牌。
<note tip>所生成的认证令牌必须存储,并在以下JSON-RPC请求的auth
参数中使用。在使用HTTP认证时也需要它。 :::
认证一个用户
Request:
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1
}
Response:
验证并返回有关用户的附加信息。
Request:
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix",
"userData": true
},
"id": 1
}
Response:
{
"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",
"sessionid": "5b56eee8be445e98f0bd42b435736e42",
"gui_access": "0"
},
"id": 1
}
CUser::login() in frontends/php/include/classes/api/services/CUser.php.