user.login

描述

string/object user.login(object parameters)

此方法允许用户登录到API并generate身份验证令牌。

使用此方法时,还需要执行user.logout,以防止生成大量打开的会话记录。

此方法仅适用于不属于任何启用了多因素身份验证的用户组的身份未验证用户。 调用此方法时,JSON-RPC请求中必须不包含auth参数。

参数

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

该方法接受以下参数。

Parameter Type Description
password string 用户密码。

Parameter behavior:
- required
username string 用户名。

Parameter behavior:
- required
userData flag 返回已认证用户的信息。

返回值

(string/object) 如果使用了 userData 参数,则返回一个对象,其中包含已认证用户的信息。

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

Property Type Description
auth_type integer 用户的默认认证方式。

有关可能值的列表,请参阅 Authentication objectauthentication_type 属性。
debug_mode integer 用户是否启用或禁用了调试模式。

有关可能值的列表,请参阅 User group objectdebug_mode 属性。
deprovisioned boolean 用户是否属于 deprovisioned users group
gui_access string 用户到前端的认证方式。

有关可能值的列表,请参阅 User group objectgui_access 属性。
mfaid integer 登录期间用户要使用的 MFA method 的 ID。

如果全局或该用户所属的所有用户组都禁用了 MFA,则返回 "0"。
secret string 随机生成的 32 个字符字符串。在用户登录时生成。
sessionid string 认证令牌,后续 API 请求中必须使用。
type integer 用户类型。

有关可能值的列表,请参阅 Role objecttype 属性。
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",
        "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 中。