Skip to main content

Iniciar sesión

POST 

/auth/login

Propósito

Autentica a un usuario y devuelve un token JWT válido para acceder a los endpoints protegidos de la API.

Objetivo

Permitir que usuarios registrados (empresa o transportista) inicien sesión y obtengan un token JWT que incluye información del perfil, tipo de cuenta y estado de métodos de pago.

Casos de uso

  • Inicio de sesión desde la aplicación web o móvil.
  • Obtener un JWT fresco cuando el token anterior ha expirado.
  • Primera autenticación tras activar la cuenta por email.

Flujo de autenticación

flowchart TD
A[Recibir POST /auth/login] --> B{¿Email proporcionado?}
B -->|No| C[400 FORM_DATA_NOT_VALID]
B -->|Sí| D{¿Usuario existe?}
D -->|No| E[400 WRONG_CREDENTIALS]
D -->|Sí| F{¿Password proporcionado?}
F -->|No| G[400 FORM_DATA_NOT_VALID]
F -->|Sí| H{¿Password válido?}
H -->|No| I[400 WRONG_CREDENTIALS]
H -->|Sí| J{¿Empresa/transportista asociada?}
J -->|No| K[401 CIA_NOT_FOUND]
J -->|Sí| L[Sincronizar Stripe si company]
L --> M[Registrar lastSignInAt e IP]
M --> N[Registrar acceso asíncrono]
N --> O[Generar JWT con datos del perfil]
O --> P[200 OK - Token JWT]

Detalles técnicos

  • Busca el usuario en CompanyUser por email.
  • Busca la empresa asociada por users y, como fallback, por truckers.
  • Si la empresa no es trucker, sincroniza cliente en Stripe si no existe aún un registro de billing.
  • Registra lastSignInAt y lastSignInIp en el usuario.
  • Guarda un registro de acceso asíncrono (accessService.setAccess).
  • El JWT incluye: datos del usuario, accountType, hasSign, hasPaymentMethod; y para truckers: hasVehicles, hasDrivers.

Campos obligatorios: email, password.

Autenticación

No requiere autenticación previa.

Request

Responses

Login exitoso. Devuelve el token JWT en el campo data

Response Headers