--- title: "Introducción" url: https://docs.catalyst.zoho.com/es/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction/ description: "Custom User Validation te permite validar registros de usuarios usando lógica personalizada" last_updated: 2026-03-20T16:21:56Z service: Cloud Scale type: general --- # Custom User Validation Catalyst te ofrece la opción de validar y autorizar usuarios finales en tu aplicación usando funciones personalizadas. Esta opción te permite configurar una [función Catalyst Basic I/O](https://docs.catalyst.zoho.com/es/serverless/help/functions/basic-io) para contener la lógica de la manera en que deseas autorizar al usuario. Durante el registro del usuario, las credenciales del usuario serán validadas a través de esta función Basic I/O. > **Nota:** Para habilitar **Custom User Validation**, primero debes asegurarte de que [Public Signup](https://docs.catalyst.zoho.com/es/cloud-scale/help/authentication/public-signup/) esté habilitado. Consulta los fragmentos de código a continuación para una función de Custom User Validation de ejemplo en Java, Node.js y Python: **Java** **Custom User Validation - Java** ```java public class MainClass implements ZCFunction { private static final Logger LOGGER = Logger.getLogger(MainClass.class.getName()); @Override public void runner(Context context, BasicIO basicIO) throws Exception { try { ZCProject.initProject(); ZCSignupUserValidationRequest requestDetails = ZCSignupUserService.getSignupValidationRequest(basicIO); if (requestDetails != null) { /*Comienza la lógica de validación */ LOGGER.info("Inside null check"); ZCSignupUserValidationResponse validationResponse = ZCSignupUserValidationResponse.getInstance(); if (requestDetails.getUserDetails().getEmailId().contains("@notallowedmail")) { validationResponse.setStatus(ZCSignupValidationStatus.FAILURE); // El usuario no pasó la autenticación } else { validationResponse.setStatus(ZCSignupValidationStatus.SUCCESS); // Las acciones que ocurren en caso de una autenticación exitosa se pueden personalizar ZCSignupResponseUserDetails respUserDetails = ZCSignupResponseUserDetails.getInstance(); respUserDetails.setFirstName("{customFirstName}"); respUserDetails.setLastName("{customLastname}"); respUserDetails.setRoleIdentifier("{customRoleName}"); respUserDetails.setOrgId("{customOrgId}"); validationResponse.setUserDetails(respUserDetails); } basicIO.write(validationResponse); /* Termina la lógica de validación*/ } } catch (Exception e) { basicIO.write(e); LOGGER.log(Level.SEVERE, "Exception in MainClass", e); basicIO.setStatus(500); } } } ``` **Node.js** **Custom User Validation - Node.js** ```javascript const catalyst = require("zcatalyst-sdk-node"); module.exports = (context, basicIO) => { const catalystApp = catalyst.initialize(context); const userManagement = catalystApp.userManagement(); const requestDetails = userManagement.getSignupValidationRequest(basicIO); if (requestDetails !== undefined) { if (requestDetails.user_details.email_id.includes("node")) { basicIO.write( JSON.stringify({ status: "failure", }) ); } else { basicIO.write( JSON.stringify({ status: "success", user_details: { first_name: "CustomFirstName", last_name: "CustomLastName", role_identifier: "CustomRole", org_id: "CustomOrgID", // Si proporcionas el Org ID, asegúrate de copiarlo exactamente desde la consola. }, }) ); } } context.close(); }; ``` **Python** **Custom User Validation - Python** ```python import json import zcatalyst_sdk def handler(context, basicio): app = zcatalyst_sdk.initialize() auth_service = app.authentication() request_details = auth_service.get_signup_validation_request(basicio) if request_details: if "spam.com" in request_details["user_details"]["email_id"]: basicio.write(json.dumps({"status": "failure"})) else: basicio.write( json.dumps( { "status": "success", "user_details": { "first_name": "Amelia", "last_name": "Jack", "role_identifier": "cx_role", "org_id": orgId, # Si proporcionas el Org ID, asegúrate de copiarlo exactamente desde la consola. }, } ) ) context.close() ``` > **Nota:** Estos fragmentos también están disponibles en los repositorios del SDK de Catalyst para [Java](https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/custom-user-validation/), [Node.js](https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/authentication/custom-user-validation/) y [Python](https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/authentication/custom-user-validation/).