Skip to navigation

Login

View as Markdown

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 PRE: https://api.ovac.pre.councilbox.com/graphql

  • URL PRO: https://api.ovac.councilbox.com/graphql

Cabeceras (Headers)

KeyValueRequeridoDescripción
Content-Typeapplication/jsonSíEspecifica el formato JSON para el cuerpo de la petición.
x-jwt-token{{token}}NoNo es necesario para el login inicial, se utiliza en llamadas posteriores.

Referencia de la API

Parámetros de Entrada (Variables)

CampoTipoRequeridoDescripción
emailString!SICorreo electrónico registrado de la cuenta de usuario.
passwordString!SIContraseñ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:

CampoTipoDescripción
tokenStringoken JWT primario que debe enviarse en la cabecera x-jwt-token en las siguientes consultas.
refreshTokenStringToken persistente utilizado para solicitar un nuevo token de acceso cuando el actual expire.
expiresIntegerTiempo de vida útil del token expresado en segundos (ej. 21600 equivale a 6 horas).

Ejemplos de Código y Peticiones

1. Mutación GraphQL

mutation Login($email: String!, $password: String!) {
login(email: $email, password: $password) {
token
refreshToken
expires
}
}

2. Variables de la Petición (JSON Payload)

{
"email": "ejemplo@dominio.com",
"password": "contraseña123"
}

3. Ejemplo de comando cURL

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)

{
"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.