> For the complete documentation index, see [llms.txt](https://docs.editran.onesait.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.editran.onesait.com/documentacion-editran/editran-connect-v3.3/api/v2/login.md).

# Login

## 1. Descripción

> **Nota:** Este endpoint está deprecado como mecanismo principal para acceder a la API. Sigue devolviendo información del usuario autenticado, pero para el consumo habitual de la API debe usarse la documentación de tokens de usuario.

Este apartado describe el mecanismo de autenticación basado en **JSON Web Tokens (JWT)** que se utilizaba en esta API. Los usuarios se autenticaban mediante sus credenciales para obtener un **token**, que se requería en las peticiones posteriores.

***

## 2. Autenticación

### 2.1. Información general

**Método:** `POST`\
**URL:** `https://<tu_servidor>/integration/v2/auth/login` **Descripción:** Permite a los usuarios autenticarse utilizando sus credenciales (nombre de usuario y contraseña) para obtener un token JWT.\
La respuesta incluye el token y la información del usuario autenticado.

### 2.2. Cabeceras

```http
accept: */*
Content-Type: application/json
```

### 2.3. Cuerpo de la petición

```json
{
  "username": "string",
  "password": "string"
}
```

### 2.4. Ejemplo de petición

```bash
curl -X 'POST' \
  'https://<tu_servidor>/integration/v2/auth/login' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
    "username": "user@example.com",
    "password": "12345"
  }'
```

### 2.5. Respuestas

#### Códigos de estado

| Código | Descripción       |
| ------ | ----------------- |
| 200    | Operación exitosa |
| 401    | No autorizado     |

#### Respuesta 200 OK

```json
{
  "refresh_token": "string",
  "expiration_token": "dd-MM-yyyy HH:mm:ss",
  "user": {
    "lastName": "string",
    "secondLastName": "string",
    "role": "string",
    "auths": {
      "operate": true,
      "administration": true,
      "editChannels": true,
      "administrationFF": true,
      "controlatorFF": true,
      "editranFF": true,
      "contactChannels": true,
      "signer": true
    },
    "name": "string",
    "language": "string",
    "email": "string"
  },
  "token": "string"
}
```

#### Respuesta 401 Unauthorized

```json
{
  "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
  "status": 401,
  "error": "Unauthorized",
  "message": "Unauthorized",
  "path": "/connect-back/integration/v2/auth/login"
}
```

***

### 3. Uso del token

Una vez autenticado, se debe incluir el **token** en todas las peticiones a la API mediante la cabecera *Authorization*.

```bash
curl -X 'GET' \
  'https://<tu_servidor>/integration/v2/contacts' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJBdXRob3JpemF0...'
```

Cuando el token expira o es inválido, se debe realizar nuevamente el proceso de login.

***

### 4. Flujo de autenticación

```
LOGIN → token
   ↓
CALL API (Authorization: Bearer <token>)
   ↓
TOKEN EXPIRADO
   ↓
LOGIN DE NUEVO
```

***

### 5. Consideraciones

* El **token** está firmado (HS512).
* El **refresh\_token** no se utiliza en esta API, por lo que no existe un mecanismo de refresh para obtener un nuevo token sin volver a autenticarse.
* El **token tiene una duración limitada** (2 horas).
* Si un token caduca, la API devolverá un error de autenticación (401). En ese caso, simplemente se debe volver a realizar la petición de login para obtener uno nuevo.
* El **token hereda los permisos del usuario autenticado**. Si el usuario tiene restricciones (por ejemplo, no puede operar canales o acceder a determinados recursos), dichas restricciones se aplicarán igualmente en las llamadas a la API.
* En resumen, el proceso de autenticación con JWT en esta API es fundamental para garantizar la seguridad y el control de acceso a los recursos protegidos, y es esencial seguir las mejores prácticas para manejar los tokens de manera segura y eficiente.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.editran.onesait.com/documentacion-editran/editran-connect-v3.3/api/v2/login.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
