Ir al contenido principal

Login de usuario - Validar

Nombre del servicio

  • Módulo: Inicial
  • Servicio: Aceptación de Términos y Condiciones

Contexto funcional

  • ¿Cuándo se usa? Al iniciar sesión por primera vez.

  • ¿Qué hace? Registra la aceptación de los términos.

  • Pantallazo de la app:

    image.png

Detalles técnicos

  • Dominio: https://erp-git-prod.shalom.com.pe
  • Endpoint: api/method/erpnext.hr.doctype.employee.api.validate_user_active
  • Método: POST
  • Headers: Authorization: Bearer <token> (no aplica)

Request ejemplo:

image.png

{
    "usr": "61759769@shalomcontrol.com", 
    "pwd": "61759769"
}

Response ejemplo:

{
    "message": {
        "success": true,
        "message": "Usuario válido y activo (check_password)."
    }
}

Servicios relacionados

  • Validación de usuario activo (ERP).
  • Generación de token de sesión.

📌 Servicio: validate_user_active

🧾 Descripción

Valida si un usuario:

  1. Existe y su contraseña es correcta

  2. Está habilitado (enabled = 1) en el Doctype User

Es un servicio simple de autenticación básica, expuesto como endpoint público vía frappe.whitelist(allow_guest=True).


🚀 Endpoint


POST /api/method/validate_user_active

Nota: El nombre final depende del módulo donde esté definida la función.
Ejemplo típico Frappe:
/api/method/app.module.doctype.file.validate_user_active


🔐 Seguridad

  • allow_guest=True → cualquiera puede llamarlo sin token

  • Solo valida credenciales usando check_password()

⚠️ Esto implica que el endpoint debe usarse únicamente desde un frontend controlado o un gateway seguro.


📥 Request Body

Formato JSON:


{ "usr": "correo@dominio.com", "pwd": "contraseña" }

📤 Responses

200 – Usuario válido


{ "success": true, "message": "Usuario válido y activo (check_password)." }

401 – Credenciales incorrectas

(Realmente devuelve 200 con success=false, pero semánticamente es un error)


{ "success": false, "message": "Usuario o contraseña incorrectos." }

403 – Usuario deshabilitado


{ "success": false,false, "message": "El usuario está deshabilitado." }

🧩 Lógica Interna (resumen)

  1. Ejecuta check_password(usr, pwd)

    • Si falla → usuario o contraseña incorrectos

  2. Consulta el campo enabled:


    frappe.db.get_value("User", usr, "enabled")
  3. Devuelve éxito solo si:

    • Contraseña correcta

    • Usuario habilitado


📚 Schemas

Entrada


{ "usr": "string", "pwd": "string" }

Salida


{ "success": "bool", "message": "string" }

🧪 Ejemplo de uso (curl)


curl -X POST https://midominio.com/api/method/app.validate_user_active \ -H "Content-Type: application/json" \ -d '{"usr":"admin@example.com", "pwd":"123"}'