[comment]: # ({19701d17-19701d17})
# user.login

[comment]: # ({/19701d17-19701d17})

[comment]: # ({c647dda4-c647dda4})
### Descripción

`string/object user.login(object parameters)`

Este método permite iniciar sesión en la API y generar un token de autenticación.

::: notewarning
Al utilizar este método, también debe hacer
[user.logout](/manual/api/reference/user/logout) para evitar el
generación de un gran número de registros de sesiones abiertas.
:::

::: noteimportant
Este método sólo está disponible para usuarios no autenticados.
y debe ser llamado sin el parámetro `auth` en la solicitud JSON-RPC.
:::

[comment]: # ({/c647dda4-c647dda4})

[comment]: # ({40e0861c-68f0a066})
### Parámetros

`(objeto)` Parámetros que contienen el nombre de usuario y la contraseña.

El método acepta los siguientes parámetros.

|Parámetro|[Tipo](/manual/api/reference_commentary#data_types)|Descripción|
|--|--|------|
|password|cadena|Contraseña de usuario.<br><br>[Comportamiento del parámetro](/manual/api/reference_commentary#parameter-behavior):<br>- *obligatorio*|
|username|cadena|Nombre de usuario.<br><br>[Comportamiento del parámetro](/manual/api/reference_commentary#parameter-behavior):<br>- *obligatorio*|
|userData|flag|Devuelve información sobre el usuario autenticado.|

[comment]: # ({/40e0861c-68f0a066})

[comment]: # ({084c666b-bc924c62})
### Valores de retorno

`(cadena/objeto)` Si se utiliza el parámetro `userData`, devuelve un objeto
que contiene información sobre el usuario autenticado.

Además de las propiedades estándar de [usuario](object#user),
se devuelve la siguiente información:

|Propiedad|[Tipo](/manual/api/reference_commentary#data_types)|Descripción|
|--|--|------|
|auth\_type|entero|Autenticación predeterminada para el usuario.<br><br>Consulte la propiedad `authentication_type` del [objeto de autenticación](/manual/api/reference/authentication/object#authentication-object) para obtener una lista de valores posibles.|
|debug\_mode|entero|Si el modo de depuración está habilitado o deshabilitado para el usuario.<br><br>Consulte la propiedad `debug_mode` del [objeto de grupo de usuarios](/manual/api/reference/usergroup/object# user_group) para obtener una lista de valores posibles.|
|deprovisioned|booleano|Si el usuario pertenece a un [grupo de usuarios desaprovisionados](/manual/web_interface/frontend_sections/users/authentication#configuration).|
|gui\_access|cadena|Método de autenticación del usuario en el frontend.<br><br>Consulte la propiedad `gui_access` del [objeto de grupo de usuarios](/manual/api/reference/usergroup/object#user_group) para obtener un lista de valores posibles.|
|secret|cadena|Cadena aleatoria de 32 caracteres. Se genera al iniciar sesión el usuario.|
|sessionid|cadena|Token de autenticación, que debe usarse en las siguientes solicitudes de API.|
|type|entero|Tipo de usuario.<br><br>Consulte la propiedad `type` del [objeto de rol](/manual/api/reference/role/object#role) para obtener una lista de valores posibles.|
|userip|cadena|Dirección IP del usuario.|

::: notetip
Si un usuario ha sido autenticado exitosamente después de uno
o más intentos fallidos, el método devolverá los valores actuales para
las propiedades `attempt_clock`, `attempt_failed` y `attempt_ip` y
luego los restablecerá.
:::

Si no se utiliza el parámetro `userData`, el método devuelve un
token de autenticación.

::: notetip
Se debe recordar el token de autenticación generado.
y usarlo en el parámetro `auth` de las siguientes solicitudes JSON-RPC.
También es necesario cuando se utiliza la autenticación HTTP.
:::

[comment]: # ({/084c666b-bc924c62})

[comment]: # ({b41637d2-b41637d2})
### Ejemplos

[comment]: # ({/b41637d2-b41637d2})

[comment]: # ({ce05d68f-46abbe5a})
#### Autenticar a un usuario

Autenticar a un usuario.

[Solicitud](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "username": "Admin",
        "password": "zabbix"
    },
    "id": 1
}
```

Respuesta:

```json
{
    "jsonrpc": "2.0",
    "result": "0424bd59b807674191e7d77572075f33",
    "id": 1
}
```

[comment]: # ({/ce05d68f-46abbe5a})

[comment]: # ({3bf01059-8448c8ab})
#### Solicitando información de usuario autenticado

Autenticar y devolver información adicional sobre el usuario.

[Solicitud](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "username": "Admin",
        "password": "zabbix",
        "userData": true
    },
    "id": 1
}
```

Respuesta:

```json
{
    "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",
        "deprovisioned": false,
        "auth_type": 0,
        "sessionid": "5b56eee8be445e98f0bd42b435736e42",
        "secret": "cd0ba923319741c6586f3d866423a8f4"
    },
    "id": 1
}
```

[comment]: # ({/3bf01059-8448c8ab})

[comment]: # ({22a14fca-22a14fca})
### Ver también

- [user.logout](logout)

[comment]: # ({/22a14fca-22a14fca})

[comment]: # ({7fd9f53c-7fd9f53c})
### Fuente

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

[comment]: # ({/7fd9f53c-7fd9f53c})
