登录用户

描述

string/object user.login(object parameters)

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

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

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

参数

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

该方法接受以下参数。

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

返回值

(string/object) 如果使用 userData 参数, 返回一个包含认证成功用户信息的对象.

除了 用户标准信息, 其他返回信息如下:

属性 描述
debug_mode boolean 用户是否启用了调试模式.
gui_access integer 前端认证使用的用户身份验证方法.

可能值的列表,请参阅 用户组gui_access 属性.
sessionid string 身份验证令牌,必须在下列API请求中使用.
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,
        "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.