Skip to main content

LogController

Este controlador gestiona el proceso de inicio de sesión y restablecimiento de contraseña para los usuarios registrados. Forma parte del módulo de autenticación de la aplicación y expone tres endpoints principales:

  • POST /auth/login: Iniciar sesión.
  • POST /auth/solicitar-reset: Solicitar restablecimiento de contraseña.
  • POST /auth/confirmar-reset: Confirmar nueva contraseña usando token.

🔍 Ubicación

src/controllers/log.controller.ts


📌 Endpoint: POST /auth/login

Autentica a un usuario a partir de sus credenciales. Si son válidas, devuelve un token JWT y los datos del usuario.

🧾 Request Body

{
"correo": "usuario@ejemplo.com",
"password": "123456"
}
CampoTipoDescripción
correostringCorreo electrónico del usuario.
passwordstringContraseña del usuario.

✅ Respuesta exitosa

{
"token": "eyJhbGciOiJIUzI1NiIsInR...",
"requiereCompletarPerfil": false,
"user": {
"idUsuario": 1,
"username": "ximena_dev",
"correo": "ximena@empresa.com",
"rol": "admin",
"tipoUsuario": "empresarial",
"rolEquipo": "editor",
"perfilCompleto": true,
"empresaId": 101
}
}
CampoTipoDescripción
tokenstringToken JWT válido para autenticación.
requiereCompletarPerfilbooleanIndica si falta información para completar el perfil.
userobjectInformación detallada del usuario autenticado.

🔑 Endpoint: POST /auth/solicitar-reset

Envía un correo con un token temporal para restablecer la contraseña.

🧾 Request Body

{
"correo": "usuario@ejemplo.com"
}
CampoTipoDescripción
correostringCorreo del usuario registrado.

✅ Respuesta

{
"mensaje": "Se ha enviado un enlace de restablecimiento a tu correo."
}

🔐 Endpoint: POST /auth/confirmar-reset

Confirma el cambio de contraseña utilizando el token enviado al correo.

🧾 Request Body

{
"token": "ABC123TOKEN",
"nuevaContrasena": "nuevaSegura123"
}
CampoTipoDescripción
tokenstringToken recibido por correo.
nuevaContrasenastringNueva contraseña elegida por el usuario.

✅ Respuesta

{
"mensaje": "La contraseña ha sido restablecida con éxito."
}

🛠️ Notas técnicas

  • validarCredenciales se encarga de validar correo y contraseña.
  • LogService implementa la lógica de recuperación y cambio de contraseña.
  • Todas las rutas usan decoradores de tsoa (@Post, @Body, @Route, etc.) para generar documentación Swagger automáticamente.
  • El token JWT debe ser enviado en futuras peticiones protegidas usando el header Authorization: Bearer <token>.