--- title: "Custom User Validation" url: https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/custom-user-validation/ description: "This page describes the method to reset the password of a user account in your Python application with sample code snippets." last_updated: 2025-11-19T15:07:41Z service: Cloud Scale type: general related_links: - name: "Authentication Help" url: /en/cloud-scale/help/authentication/introduction - name: "SDK Scopes" url: /en/sdk/python/v1/sdk-scopes --- # Custom User Validation Catalyst Authentication allows you to authorize and validate your end-users using a custom [Basic I/O function](https://docs.catalyst.zoho.com/en/serverless/help/functions/basic-io/) on the event of a sign-up to your Catalyst application. You can write your own logic and process the credentials that the user provides through this function, and grant access to your application. To know more about the component instance `authentication_service` used below, please refer to [this section](https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/). A sample code for a [Custom User Validation](https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction/) function is given below. **Parameters Used**
Parameter Name Data Type Definition
`basicio` Function A **Mandatory** parameter. The Basic IO Catalyst function that allows to authorize and validate your end-users.
**Package Imports** ```java import json import zcatalyst_sdk ``` ```python def handler(context, basicio): app = zcatalyst_sdk.initialize() authentication_service = app.authentication() request_details = authentication_service.get_signup_validation_request(basicio) if request_details: print("response :", 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": 1012535411 # If you are providing the Org ID, it must be copied from the console. }, } ) ) context.close() ``` To test this function, you can pass the details of the user in the following `.JSON` format: ```json { "request_type":"add_user", "request_details":{ "user_details":{ "email_id":"emmy@zylker.com", "first_name":"Emma", "last_name":"Thompson", "org_id":"432567817", "role_details":{ "role_name":"Moderator", "role_id":"879" } }, "auth_type":"web" } } ``` > **Info :** Refer to the [SDK Scopes table](https://docs.catalyst.zoho.com/en/sdk/python/v1/sdk-scopes) to determine the required permission level for performing the above operation.