Skip to content

API de Autenticación

Endpoints para autenticación y gestión de sesiones.

Login

Autenticar un usuario y obtener token JWT.

Request

http
POST /api/v1/auth/login
Content-Type: application/json

{
  "email": "ada.lovelace@bizflowerp.com",
  "password": "password123"
}

Response - Éxito (200)

json
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "user": {
    "id": 1,
    "email": "ada.lovelace@bizflowerp.com",
    "roleId": 1,
    "roleName": "Administrador",
    "employeeId": 1
  }
}

Response - Credenciales inválidas (401)

json
{
  "error": "Credenciales inválidas"
}

Uso del Token

Incluir el token en el header Authorization de todas las peticiones:

http
GET /api/v1/expenses
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Estructura del Token JWT

El token contiene:

json
{
  "sub": "ada.lovelace@bizflowerp.com",
  "userId": 1,
  "roleId": 1,
  "roleName": "Administrador",
  "iat": 1707900000,
  "exp": 1707986400
}
CampoDescripción
subEmail del usuario
userIdID del usuario
roleIdID del rol (1=ADMIN, 2=USER, 3=MANAGER)
roleNameNombre del rol
iatTimestamp de emisión
expTimestamp de expiración

Expiración

El token expira después de 24 horas. Cuando expire, el usuario debe volver a autenticarse.

Response - Token expirado (401)

json
{
  "error": "Token expirado",
  "code": "TOKEN_EXPIRED"
}

Logout

El logout se maneja en el cliente eliminando el token almacenado. No hay endpoint de logout en el servidor.

javascript
// Frontend
localStorage.removeItem('token')
localStorage.removeItem('user')

Licencia GNU GPL v3