Login de usuario - [validate_user_active]
🧾 Descripción
Valida si un usuario:
-
Existe y su contraseña es correcta
-
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
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,
"message": "El usuario está deshabilitado."
} |
🧩 Lógica Interna (resumen)
-
Ejecuta
check_password(usr, pwd)-
Si falla → usuario o contraseña incorrectos
-
-
Consulta el campo
enabled: -
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"}' |