登录

描述

string/object user.login(object parameters)

此方法用于登录到API并生成认证令牌。

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

此方法仅适用于那些尚未进行身份验证,且不属于任何已启用多因素身份验证用户组的用户。必须在json-rpc请求中没有auth参数的情况下调用此方法。

参数

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

该方法接受以下参数。

参数类型描述
password
(必填)
string用户密码
username
(必填)
string用户名
userDataflag返回关于认证用户的信息

返回值

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

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

属性描述
auth_typeinteger用户的默认身份验证。

有可能的返回值,请参阅身份验证对象authentication_type属性。
debug_modeinteger用户是否启用了调试模式。

有可能的返回值,请参阅用户组对象debug_mode属性。
deprovisionedboolean用户是否属于已取消配置的用户组
gui_accessstring前端认证使用的用户身份验证方法。

有可能的返回值,请参阅用户组对象gui_access属性。
mfaidinteger使用MFA方式登录时的ID。

如果全局禁用MFA或对用户所属的所有用户组禁用MFA,则返回 “0”。
secretstring随机32个字符的字符串,在用户登录时生成。
sessionidstring认证令牌,在后续的API请求中必须使用。
typeinteger用户类型。

有可能的返回值,请参阅角色对象type属性。
useripstring用户的IP地址。

如果一个用户在一次或多次失败的尝试之后成功地进行了身份验证,该方法将返回attempt_clockattempt_failedattempt_ip属性的当前值,然后重新设置它们。

如果不使用userData参数,该方法将返回认证令牌。

所生成的认证令牌请务必保存,并在以下JSON-RPC请求的auth参数中使用,在使用HTTP认证时也需要它。

示例

单用户认证

单用户认证。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "user.login",
  4. "params": {
  5. "username": "Admin",
  6. "password": "zabbix"
  7. },
  8. "id": 1
  9. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": "0424bd59b807674191e7d77572075f33",
  4. "id": 1
  5. }

请求已验证用户的信息

验证并返回有关用户的附加信息。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "user.login",
  4. "params": {
  5. "username": "Admin",
  6. "password": "zabbix",
  7. "userData": true
  8. },
  9. "id": 1
  10. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "userid": "1",
  5. "username": "Admin",
  6. "name": "Zabbix",
  7. "surname": "Administrator",
  8. "url": "",
  9. "autologin": "1",
  10. "autologout": "0",
  11. "lang": "ru_RU",
  12. "refresh": "0",
  13. "theme": "default",
  14. "attempt_failed": "0",
  15. "attempt_ip": "127.0.0.1",
  16. "attempt_clock": "1355919038",
  17. "rows_per_page": "50",
  18. "timezone": "Europe/Riga",
  19. "roleid": "3",
  20. "type": 3,
  21. "debug_mode": 0,
  22. "userip": "127.0.0.1",
  23. "gui_access": "0",
  24. "sessionid": "5b56eee8be445e98f0bd42b435736e42"
  25. },
  26. "id": 1
  27. }

参考

来源

CUser::login() in ui/include/classes/api/services/CUser.php.