Login

View as Markdown
# Login (`mutation`) Este método realiza la autenticación de un usuario en el sistema mediante sus credenciales (correo electrónico y contraseña). Al completarse con éxito, genera un token de acceso principal (`token`) y un token de renovación (`refreshToken`) necesarios para consumir el resto de endpoints protegidos de la API. ### Detalles de la Solicitud - **Método HTTP:** `POST` - **URL:** `https://api.ovac.pre.councilbox.com/graphql` ### Cabeceras (Headers) | **Key** | **Value** | **Requerido** | **Descripción** | | --- | --- | --- | --- | | **Content-Type** | application/json | Sí | Especifica el formato JSON para el cuerpo de la petición. | | **x-jwt-token** | {{token}} | No | No es necesario para el login inicial, se utiliza en llamadas posteriores. | ## Referencia de la API ### Parámetros de Entrada (Variables) | **Campo** | **Tipo** | **Requerido** | **Descripción** | | --- | --- | --- | --- | | **email** | String! | SI | Correo electrónico registrado de la cuenta de usuario. | | **password** | String! | SI | Contraseña asociada a la cuenta. | ### Campos de Respuesta (Payload) La mutación devuelve un objeto `login` con los elementos necesarios para la gestión de la sesión: | Campo | Tipo | Descripción | | --- | --- | --- | | **token** | String | oken JWT primario que debe enviarse en la cabecera `x-jwt-token` en las siguientes consultas. | | **refreshToken** | String | Token persistente utilizado para solicitar un nuevo token de acceso cuando el actual expire. | | **expires** | Integer | Tiempo de vida útil del token expresado en segundos (ej. `21600` equivale a 6 horas). | ## Ejemplos de Código y Peticiones ### 1\. Mutación GraphQL ``` graphql mutation Login($email: String!, $password: String!) { login(email: $email, password: $password) { token refreshToken expires } } ``` ### 2\. Variables de la Petición (JSON Payload) ``` json { "email": "ejemplo@dominio.com", "password": "contraseña123" } ``` ### 3\. Ejemplo de comando cURL ``` bash curl --location --globoff "https://api.ovac.pre.councilbox.com/graphql" \ --header "Content-Type: application/json" \ --data '{"query":"mutation ($email: String!, $password: String!) { login(email: $email, password: $password) { token refreshToken expires } }","variables":{"email":"ejemplo@dominio.com","password":"contraseña123"}}' ``` ### 4\. Respuesta Esperada (200 OK) ``` json { "data": { "login": { "token": "eyJhbGciOiJIUzI1NiR5cCI6IkpXVCJ9.eyJqdGkiOiJkZTc0ZTc5YS1kMzZhLTRiOTYtYWEzNC03NmViOGM5ODlkOWEiLCJ1c2VyX2lkIjozNDc2LCJ0b2tlbl90eXBlIjoidXNlciIsImlhdCI6MTc3NjM1NzE5MH0.AHiUq8QwxSPnuQD9FngbS8FZ0Jf3v81AnXdXsJWjXRo", "refreshToken": "eyJhbGciOiJIUz1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MzQ3Niwic2Vzc2lvbklkIjoiZGU3NGU3OWEtZDM2YS00Yjk2LWFhMzQtNzZlYjhjOTg5ZDlhIiwiaWF0IjoxNzc2MzU3MTkwfQ.ddJqC8Jd20qYsm6dR8dhb1YkBV9XSsvrTGX2CzGXepM", "expires": 21600 } } } ``` > **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como `/graphql/login` para que Fern pueda mostrarla como operación independiente. La ruta técnica real de ejecución es `POST /graphql`.

Request

This endpoint expects an object.
querystringRequired
GraphQL operation
variablesobjectOptional
GraphQL variables

Response

Successful response. GraphQL business errors may be returned inside the JSON errors field while transport status remains HTTP 200.