Prima-Back
  1. Modulo Administradores
Prima-Back
  • API DOCUMENTATION
  • Principal
    • /
      GET
  • Modulo Administradores
    • Vendedores Operaciones
      • Registro de Vendedores
      • Visualizar Vendedores
      • Visualizar Vendedores por Mongo ID
      • Visualizar Vendedores por cedula
      • Actualizar Vendedor
      • Eliminar Vendedor
    • Estadisticas
      • Estadisticas de documentos
      • Visualizacion de top Vendedores
      • Visualizar Ventas por Vendedor
    • Login Administradores
      POST
    • Recuperacion de contraseña Administrador
      POST
  • Modulo Vendedores
    • Inicio de Sesión Vendedores
      POST
    • Confirmación de Cuenta
      GET
    • Solicitud de restablecimiento de contraseña
      POST
    • Restablecimiento de contraseña
      POST
  • Modulo Clientes
    • Registrar Cliente
      POST
    • Visualizar Clientes
      GET
    • Visualizar Clientes por RUC
      GET
    • Actualizar Cliente
      PATCH
    • Eliminar Cliente
      DELETE
  • Modulo Productos
    • Crear Producto
      POST
    • Visualizar Productos
      GET
    • Visualizar Productos por ID
      GET
    • Actualizar Producto
      PATCH
    • Eliminar Producto
      DELETE
  • Modulo Pedidos
    • Crear Orden
      POST
    • Visualizar Ordenes
      GET
    • Visualizar Ordenes por ID
      GET
    • Actualizar Orden
      PATCH
    • Actualizar Estado de Orden
      PATCH
    • Eliminar Orden
      DELETE
  1. Modulo Administradores

Login Administradores

POST
/api/login-admin

📝 POST /login-admin#

Autentica a un usuario administrador y devuelve un token JWT si las credenciales son válidas.

📍 Ruta#

POST /api/login-admin

📝 Descripción#

Este endpoint permite autenticar a un usuario administrador. Si las credenciales son correctas, devuelve un token JWT que se puede usar para acceder a las rutas protegidas.

📦 Request Body#

{
  "username": "nombre_de_usuario_admin",
  "password": "la_contraseña_del_admin"
}

⚙️ Flujo de Ejecución#

1.
Validación de Entrada
Verifica que username y password estén presentes y cumplan los formatos definidos.
Si falta algún campo o tiene formato incorrecto, responde con 400 Bad Request.
2.
Búsqueda de Usuario
Se busca un administrador en la base de datos (admins model) por username.
Si no se encuentra al usuario, responde con 404 Not Found.
3.
Verificación de Estado
Comprueba si status === true.
Si la cuenta está bloqueada (status === false), responde con 403 Forbidden.
4.
Verificación de Contraseña
Se utiliza bcrypt.compare (método matchPassword) para comparar las contraseñas.
Si la contraseña es incorrecta:
Se decrementa el contador de intentos chances.
Si chances llega a 0, se bloquea la cuenta (status = false).
Se guarda el cambio y responde 401 Unauthorized con el número de intentos restantes o indicando que la cuenta ha sido bloqueada.
Si la contraseña es correcta:
Se actualiza lastLogin con la fecha y hora actual.
Se resetea chances a 3.
Se guarda el cambio.
Se genera un token JWT con _id y role = "admin".
Se responde 200 OK con los datos del administrador y el token.
5.
Manejo de Errores
Cualquier otro error genera una respuesta 500 Internal Server Error.

✅ Respuestas Posibles#

✔️ 200 OK – Login exitoso#

{
  "status": "success",
  "code": "LOGIN_SUCCESS",
  "msg": "Inicio de sesión exitoso para 'admin_user'.",
  "data": {
    "admin": {
      "_id": "...",
      "username": "admin_user",
      "role": "admin",
      "createdAt": "...",
      "lastLogin": "..."
    },
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}

🚫 400 Bad Request – Campos faltantes o formato inválido#

{
  "status": "error",
  "code": "MISSING_FIELD", // o código de validación específico
  "msg": "Los campos 'username' y 'password' son obligatorios."
}

🚫 401 Unauthorized – Contraseña incorrecta#

{
  "status": "error",
  "code": "INVALID_CREDENTIALS",
  "msg": "Contraseña errónea. Le quedan X intentos." 
  // o "Contraseña errónea. La cuenta ha sido bloqueada."
}

🚫 403 Forbidden – Cuenta bloqueada#

{
  "status": "error",
  "code": "ACCOUNT_LOCKED",
  "msg": "La cuenta del administrador 'admin_user' está bloqueada."
}

🚫 404 Not Found – Administrador no existe#

{
  "status": "error",
  "code": "NOT_FOUND",
  "msg": "No se encontró administrador con username 'admin_user'."
}

💥 500 Internal Server Error – Error inesperado#

{
  "status": "error",
  "code": "SERVER_ERROR",
  "msg": "Ha ocurrido un error inesperado al intentar iniciar sesión. Intente de nuevo más tarde."
}
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://back-prima-s-a.onrender.com/api/login-admin' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "UserAdmin",
    "password": "PassAdmin"
}'
Response Response Example
{
    "msg": "Inicio de sesion exitoso",
    "inf": {
        "_id": "67624f907669c906ca34a8de",
        "username": "UserAdmin",
        "role": "admin",
        "createdAt": "2024-12-17T12:00:00.000Z"
    },
    "tokenJWT": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NjI0ZjkwNzY2OWM5MDZjYTM0YThkZSIsInJvbCI6ImFkbWluIiwiaWF0IjoxNzQyODQzNzUwLCJleHAiOjE3NDI4NzI1NTB9.4AWcgFdvlxB1qr2WC8yk1c3ki0I3vK8JqJZZrVYaVYs"
}

Request

Body Params application/json

Examples

Responses

🟢200Success
application/json
Body

Modified at 2025-06-14 22:40:54
Previous
Visualizar Ventas por Vendedor
Next
Recuperacion de contraseña Administrador
Built with