# Authentication -------------------------------------------------------------------------------- title: "Introduction" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.533Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Authentication ### Introduction Authentication is a component of the Catalyst Cloud Scale service that enables you to add end-users to your application, customize app login and sign-up forms to match your business branding, manage user accounts and roles, and ensure secure access throughout your application directly from the console. This authentication component, powered by Catalyst, provides a secure and scalable way to handle user authentication and authorization within your application. You can perform the following actions using Authentication from the remote console: * Add or remove the end-users of your application * Enable or disable their user accounts in your application * Create templates for emails to invite new users to access the application * Reset their passwords * Access Catalyst's user sign-in code snippet that you can include in your application * Configure Google and Zoho sign-in providers for your application * Create and manage roles to define the levels of access and permissions for users <br /> Catalyst provides two types of user authentication for your application: - {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/introduction/" %}}Native Catalyst Authentication{{%/link%}} - {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}Hosted Authentication Type{{%/link%}} - {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/introduction/" %}}Embedded Authentication Type{{%/link%}} - {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/" %}}Third-party Authentication Type{{%/link%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} You can implement one instance of each of these authentication methods in a single application. You must set up at least one authentication method before you start adding users to your application.{{%/note%}} With Authentication, the backend infrastructure management is entirely handled by Catalyst, allowing you to integrate it in your application with ease and with minimal coding effort. All the operations that you can perform from the authentication console are listed below: * Configure and implement an {{%link href="/en/cloud-scale/help/authentication/authentication-types/" %}}authentication type{{%/link%}} of your preference * {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/configure-hosted-authentication/" %}}Design the login element{{%/link%}} of your application * Enable user login through common {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/" %}}social login platforms{{%/link%}} * {{%link href="/en/cloud-scale/help/authentication/user-management/introduction/" %}}Add or remove end-users{{%/link%}} of your application * Configure and change the end-users' {{%link href="/en/cloud-scale/help/authentication/user-management/roles/introduction/" %}}user roles{{%/link%}} to define their levels of access and permissions to various Catalyst features * {{%link href="/en/cloud-scale/help/authentication/authentication-types/#adding-more-than-one-type-of-authentication" %}}Configure{{%/link%}} more than one type of authentication * Authorize external domains and enable {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction/" %}}CORS and iFrame{{%/link%}} for your application in them * Design the {{%link href="/en/cloud-scale/help/authentication/email-templates/introduction/" %}}email templates{{%/link%}} that need to be sent to your end-users in the event of an initial sign up or if their passwords need to be reset The document is divided into five pages to cover the five features of Catalyst Authentication: {{%bold%}}Users{{%/bold%}}, {{%bold%}}Email Templates{{%/bold%}}, {{%bold%}}Sign-in Method{{%/bold%}}, {{%bold%}}Roles{{%/bold%}}, {{%bold%}}Authorized Domains{{%/bold%}}. Each section explains the key concepts, benefits, and implementation of each feature. To learn about using Authentication in the development and production environments, visit the {{%link href="/en/deployment-and-billing/environments/introduction/" %}}Environments help page{{%/link%}}. ### SDK and API documentation You can also add and manage the end-users of your application, and obtain user details using {{%link href="/en/api/oauth2/overview-and-terminology/#OverviewandTerminology" %}}Catalyst API{{%/link%}}and SDKs. For more information and code samples on working in these programming environments, refer to these help pages: * {{%link href="/en/sdk/java/v1/cloud-scale/authentication/add-new-user/" %}}Authentication - Java SDK{{%/link%}} * {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/get-component-instance/" %}}Authentication - Node.js SDK{{%/link%}} * {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}Authentication - Python SDK{{%/link%}} * {{%link href="/en/sdk/web/v4/cloud-scale/authentication/get-auth-instance/" %}}Authentication - Web SDK{{%/link%}} * {{%link href="/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser" %}}Authentication API{{%/link%}} <br /> -------------------------------------------------------------------------------- title: "Benefits" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.534Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/benefits/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Benefits * You have the flexibility of implementing Catalyst Authentication using different methods: {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/introduction/" %}}Native Catalyst Authentication{{%/link%}} ({{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}Hosted Authentication Type{{%/link%}} and {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/introduction/" %}}Embedded Authentication Type{{%/link%}}) and {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/" %}}Third-party Authentication Type{{%/link%}}. * Each authentication type provides you with a unique way to configure and design your login element. * You can directly add end-users to your application and configure their user roles upon your requirements. * You can customize additional user roles, and specific permissions can be provided to dictate access to {{%link href="/en/cloud-scale/help/data-store/scopes-and-permissions/" %}}Data Store{{%/link%}} and {{%link href="/en/cloud-scale/help/file-store/implementation/#set-permissions-for-a-folder" %}}File Store{{%/link%}} components. * You have the option to add end-users to an organization using an existing organization, or have Catalyst create a new organization automatically when the user is added. * You can now customize and style templates of the {{%link href="/en/cloud-scale/help/authentication/email-templates/introduction/" %}}Email Verification and Password Reset emails{{%/link%}} to compliment your branding requirements. * Enable and disable {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction/" %}}CORS and iFrame access{{%/link%}} to your application with a few simple steps. * Complex authentication types can be enabled and configured for your application directly from the console, and this does not require complex coding. <br /> -------------------------------------------------------------------------------- title: "Use Cases" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.534Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/use-cases/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Use Cases Catalyst Authentication features can be used in the following scenarios: * An internal web forum, meant for the employees of an organization to discuss and gather information about the activities and tasks undertaken in various departments, uses Catalyst Authentication to {{%link href="/en/cloud-scale/help/authentication/user-management/introduction/" %}}manage its users{{%/link%}}. The collaborators of the web app development team can invite users to access the forum, assign and create custom roles for users, modify user information, or delete users from the console.<br /><br />The application provides three levels of access to its various users: App Administrator, App Moderator, App User. The users of the {{%link href="/en/cloud-scale/help/authentication/user-management/roles/implementation/" %}}app user role{{%/link%}} can only submit posts in the forum, while the app moderators can approve or decline the content submitted for approval, and the app administrators can also permanently delete the content in the forum. These permissions for the user roles are configured in the {{%link href="/en/cloud-scale/help/data-store/scopes-and-permissions/" %}}Data Store{{%/link%}} and {{%link href="/en/cloud-scale/help/file-store/implementation/#set-permissions-for-a-folder" %}}File Store{{%/link%}}. * An application that can be accessed by different kinds of users, and based on the type of user you can have three different types of login element. For example, if your application is accessed by members of your organization, you can choose to design the login page from the console to ensure only to contain {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction" %}}social login elements{{%/link%}}, instead of a generic login form. For the same application you can also configure and design a dedicated login page with a conventional login form for new end-users that happen to be outside your organization. * A travel planner web app requires its widget to be embedded in a hotel booking website, developed by one of its auxiliary companies. The hotel booking application also requires access to the travel web app's function endpoints, to obtain specific data of their common customers. The travel web app makes use of Catalyst Authentication to quickly authorize the domain of the auxiliary company, and {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction/" %}}CORS and iFrame{{%/link%}} for it. The travel planner web app also implements a Google sign-in option in its client application, and manages it from the Catalyst console. * Catalyst Authentication offers you the option to enable or disable {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}public signups{{%/link%}}. If you are building an application where you do not want to provide a login element at all and yet authorize users to your application, you can do so by disabling public signups and directly adding the end-user from the console. If you wish to enhance the security of your application further, you can enable the {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction/" %}}Custom User Validation{{%/link%}} and create a {{%link href= "/en/serverless/help/functions/basic-io/#introduction" %}}Catalyst Basic I/O functions{{%/link%}} to validate the user details and add them to your application. * Every company has an identity and branding colors and font that they follow to stand out and become recognizable. Using Catalyst Authentication, you can maintain brand consistency when it comes to sending out sign up emails and password action emails without any additional coding. The console offers you {{%link href="/en/cloud-scale/help/authentication/email-templates/introduction/" %}}email templates{{%/link%}} that you can use to style your user authorization emails in a manner that resonates with your brand. <br /> -------------------------------------------------------------------------------- title: "Manage Multiple Authentication Types" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.534Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/authentication-types/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Manage Multiple Authentication Types ### Introduction Catalyst offers authentication solutions in three types: {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}The Hosted Authentication Type{{%/link%}}, {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/introduction/" %}}The Embedded Authentication Type{{%/link%}}, and {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/" %}}The Third-party Authentication Type{{%/link%}} You can implement one instance of each authentication type in each of your Catalyst applications. This help page provides details about implementing additional authentication types, after the first one is implemented. The *Authentication Type* section enables you to view what authentication types have been enabled, add additional authentication methods, and view and edit existing authentication types. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You need to enable at least one authentication type to access this section.{{%/note%}} When you complete setting up and enabling each authentication type, you will be directed to the *Authentication Type* section of the console. For example, if you have enabled the {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}Hosted Authentication Type{{%/link%}}, then you will see the following screen: <br /> * You will be able to view which authentication type is currently enabled. * You will have the option to configure, edit and enable or disable {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/" %}}Social Logins{{%/link%}} of your choice. * You will be able to view and copy the **Login URL**. * You can click **Access URL** to view the login element as it would appear to the end-user. * You can click **Edit Page** to edit the style and functionality of the login page. ### Adding More Than One Type of Authentication To add an additional authentication method after the first type is implemented: 1. Click **Add Authentication** from the *Authentication Type* section to add another authentication type. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} In this example, the {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}Hosted Authentication Type{{%/link%}} has already been set up.{{%/note%}} 2. Click **Configure** option of the authentication type you wish to configure. For instance, click **Configure** next to *Embedded Authentication* to set up embedded authentication type. Find out how to configure Embedded Authentication type {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/introduction/" %}}here{{%/link%}}. <br /> 3. Once you have completed setting up embedded authentication, you will be redirected to the *Authentication Type* section. In the **Enabled Type** section, you will be able to see that both *Hosted* and *Embedded* authentication types have been enabled. <br /> 4. You can click **Add Authentication** again to set up *Third-party Authentication* along with the *Native Catalyst Authentication* types that you have set up. * Click **Configure** next to the *Third Party Authentication* option to begin set up. <br /> * Follow the {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/implementation/" %}}authentication setup steps to configure third-party authentication{{%/link%}} on your Catalyst application. 5. After you complete the set up, you will be directed to the *Authentication Types* section. All three authentication types have now been enabled for your Catalyst application. <br /> ### Managing More Than One Authentication Type After you complete the set up, you will be directed to the Authentication Types section. All three authentication types have now been enabled for your Catalyst application. <br /> Catalyst will then display the configuration of the authentication type you selected. <br /> -------------------------------------------------------------------------------- title: "Public Signup" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.534Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/public-signup/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Public Signup Enabling Public Signup will display the signup option in your login element and allow new users to sign up to your application. Public Signup is disabled by default. You will not be access or enable the following while it is disabled: * The Signup option will not be displayed to your end-users, and you will not be able to add any of the {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/" %}}Social Logins{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}}Disabling Public Signup in one authentication type will disable it for all authentication types.{{%/note%}} * You will not be able to authenticate your end-users using custom logic through {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction/" %}}Custom User Validation{{%/link%}}. ### Enable Public Signup The option to enable Public Signup will be present while you are setting any of the three authentication types. You can also enable it any time after an authentication is set up, from the *Authentication Types* section. {{%note%}}{{%bold%}}Note:{{%/bold%}} Public Signup is mandatory to proceed with {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/implementation/" %}}third-party authentication setup{{%/link%}}.{{%/note%}} 1. Enable the option by clicking the toggle button. <br /> 2. Click **Yes, Proceed** after reviewing the pop-up. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} If you enable Public Signup for one authentication type, it will be automatically enabled for all authentication types.{{%/note%}} ### Disable Public Signup The option to disable Public Signup will also be available while you are setting up an authentication type, and in the *Authentication Types* section. To disable Public Signup: 1. Click the Public Signup toggle-button. <br /> 2. Click **Confirm**, after reviewing the pop-up and entering "**DISABLE**" in the input section. <br /> Public Signup will be disabled for all authentication types. -------------------------------------------------------------------------------- title: "Cross Domain Access" description: "Authentication offers a cross domain acess feature that allows you to authenticate backend requirements for frontend services." last_updated: "2026-03-18T07:41:08.534Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/cross-domain-access/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Authenticate Backend Requirements for Frontend Services Catalyst Authentication offers you a solution to authenticate invocation calls made to backend services hosted on Catalyst; made from frontend services hosted in Catalyst frontend hosting services. {{%note%}}{{%bold%}}Note:{{%/bold%}} This authentication method can only be applied if both your frontend service and backend service are hosted in the same project.{{%/note%}} The following is an example code snippet highlighting the manner in which you can generate the required token to authenticate backend calls made to a Catalyst backend hosting service made from a Catalyst frontend hosting service. {{% panel_without_adjustment class="language-javascript line-numbers" header="generateAuthToken method" footer="button" scroll="set-scroll" %}}document.getElementById("fn-btn").addEventListener("click", function(e) { e.preventDefault(); var city = "test"; var auth = catalyst.auth; auth.generateAuthToken().then((response) => { const token = response.access_token; fetch("URL_endpoint", { < !--URL end point of your backend service.-- > method: "POST", headers: { Authorization: `${token}`, "Content-Type": "application/json", }, body: JSON.stringify({ city_name: city, }), }) .then((response) => response.json()) .then((data) => { alert(data.message); }) .catch((err) => { console.error("Error during fetch:", err); alert("An error occurred. Please try again."); }); }) .catch((err) => { console.error("Error generating token:", err); alert("Failed to generate authentication token."); }); }); {{%/panel_without_adjustment%}} The logic detailed in the above snippet is explained below: * When an authenticated user accesses the application, their token can be obtained using the {{%badge%}}generateAuthToken{{%/badge%}} method. * The user token that is obtained will be stored in the {{%badge%}}access_token{{%/badge%}} response key. * The obtained token will be set as the value for the {{%badge%}}{{%bold%}}Authorization{{%/bold%}}{{%/badge%}} header key when the endpoint URL of the backend service is invoked. * A {{%link href="en/cli/v1/deploy-resources/deploy-all-resources/#deploy-functions" %}}Functions URL{{%/link%}}, {{%link href="/en/cli/v1/deploy-resources/deploy-appsail/" %}}AppSail URL{{%/link%}}, or {{%link href="/en/slate/help/slate-access-url/" %}}Slate's Access URL{{%/link%}}, essentially, the URL generated by Catalyst when you host your backend code, will be the one you provide in line no {{%badge%}}{{%bold%}}7{{%/bold%}}{{%/badge%}}. Now, with the URL invoked, the following section will list the steps detailing the manner in which authentication will be carried out: * Once the backend service is invoked. The Catalyst SDK will be initialized using the request object. * The request object will contain the token, ensuring this initialization is done in an authenticated manner. * Catalyst will ensure that this initialization is made for all Catalyst required scopes. Thereby ensuring that the invocation calls made from the frontend service to the backend service hosted in Catalyst are effectively authenticated. {{%note%}}{{%bold%}}Notes:{{%/bold%}}<br /> * The generated access token will only be {{%bold%}}valid for 1 hour{{%/bold%}}. * You will need to ensure that the domain of the backend service and the frontend service are whitelisted using the {{%bold%}}CORS{{%/bold%}} feature present in the {{%italics%}}Authentication{{%/italics%}} component. You can find out more about the CORS feature from this {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction/#cors" %}}help documentation{{%/link%}}.{{%/note%}} Once the {{%badge%}}generateAuthToken{{%/badge%}} method is plugged into your authentication logic, the applications hosted in Catalyst frontend hosting services will be able to make secure invocations of the backend services hosted in other Catalyst hosting services using *Catalyst Authentication*. ## Email Templates -------------------------------------------------------------------------------- title: "Introduction" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.535Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/email-templates/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Email Templates Authentication provides you with default templates for email verification and password reset emails. You can override these default templates if needed, and customize the contents of the emails' subject, message body, design of the template and sender's email address in the template, and save it. {{%note%}}{{%bold%}}Note:{{%/bold%}} You will have to enable at least one authentication type to access this section.{{%/note%}} The *Email Verification* email is sent to your end-user to invite, verify and add them to your application. This email is either sent when they are added to your application by you through {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/" %}}*User Management*{{%/link%}} or when they sign up to your application for the first time. <br /> The *Password Reset* email is triggered by your end-user when they click the password reset/forgot password option in your login element. You can also send a Password Reset email to your user from the console using the {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#reset-a-users-password" %}}User Management{{%/link%}} feature. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You can learn more about how Catalyst Cloud Scale enables you to send email to your end-users from your Catalyst application in the {{%link href="/en/cloud-scale/help/mail/introduction/" %}}Mail component help page{{%/link%}}.{{%/note%}} <br /> -------------------------------------------------------------------------------- title: "Key Concepts and Benefits" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.535Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/email-templates/benefits-and-key-concepts/" service: "Cloud Scale" -------------------------------------------------------------------------------- ### Key Concepts #### Placeholders You can insert placeholders in the email's subject and message body for dynamic content. A placeholder is a representational variable for a dynamic value that will be filled in when the email is sent. The placeholder variable refers to the API name of the specific component. It is inserted with **%** symbols at the beginning and the end of the variable's name like: **%APP_NAME%** or **%LINK%**. <br /> There are three placeholders available that you can use in email templates: * {{%badge%}}{{%bold%}}%EMAIL%{{%/bold%}}{{%/badge%}}: Denotes the email address of the user that they used to register for an account in Catalyst. This value is obtained from the user's information stored in Catalyst. * {{%badge%}}{{%bold%}}%APP_NAME%{{%/bold%}}{{%/badge%}}: Denotes the name of your application. This value is the same as the name you specified in the {{%link href="/en/cli/v1/project-directory-structure/catalyst-json/" %}}{{%badge%}}client-package.json{{%/badge%}}configuration file{{%/link%}}, and is obtained after you host the application. * {{%badge%}}{{%bold%}}%LINK%{{%/bold%}}{{%/badge%}}: Denotes either the hyperlink of the {{%link href="/en/cloud-scale/help/web-client-hosting/implementation/#host-a-web-application" %}}Web App URL{{%/link%}} or the hyperlink of the reset password page that you configure in your application. The values of these placeholders are populated automatically from the data obtained from your project specifications, and the populated values are inserted into the emails when they are sent. ### Benefits * Email templates enable you to define a standard format for the user invite and password reset emails, retaining uniformity in the structure of the emails you send to your users. * The placeholders in the templates auto-fill the essential details in your email, preventing manual workload from your end. * You can maintain brand consistency in your communications with your application users by styling and drafting the templates as per your needs. <br /> -------------------------------------------------------------------------------- title: "Customizing Email Templates" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.535Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/email-templates/customizing-email-templates/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Email Templates Customization The Email Templates feature allows you to customize the styling of the *Email Verification* and *Password Reset* emails. You can customize the font, subject, email content and style of the email based on your business requirements and branding preferences. You can also view the live preview of the email as you configure the template. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You can customize the style of the email verification and password reset emails by adding the HTML code of the emails as the templates in the console.{{%/note%}} ### Customize the Default Email Templates 1. Navigate to Cloud Scale > Authentication, and click the Email Templates tab. <br /> 2. From the **Email Verification** tab, you can view and customize the Email Verification template: - If you wish to customize the template of the verification email, click **Edit**. <br /> - You can edit the mail's subject and the content of the email and style it using HTML. You can either edit in the console, or you can paste the HTML code of the template. The changes you make to the template can be viewed in the **Preview** section. <br /> 3. Click **Save**, to confirm the changes and save the *Email Verification* template. 4. Click **Password Reset** tab to view and customize the *Password Reset* template: - Similar to the *Email Verification* template, you can customize and change, the email's subject, and the content using HTML. Click the **Edit** button. <br /> - As in Email Verification, you will be able to view the changes made in the Preview Section. <br /> 5. Click **Save**, to confirm the changes and save the *Password Reset* template. The email verification and password reset emails that will be sent from your Catalyst application will now be sent as per the customized templates. <br /> ## Native Catalyst Authentication -------------------------------------------------------------------------------- title: "Introduction" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.536Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/native-catalyst-authentication/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Native Catalyst Authentication Native Catalyst Authentication is an Authentication type where the entire authentication setup is handled by Catalyst, without the requirement of any additional coding or infrastructure management from your end. With this authentication type, Catalyst secures end-user access and all the end points of your application, relieving you from the responsibility of handling the backend security requirements. Native Catalyst Authentication can be implemented using either or both of these methods: * {{%link href= "/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}{{%bold%}}Hosted Login{{%/bold%}}{{%/link%}}: This enables you to create and host your login element as a dedicated page. <br /> You can implement this authentication type, if you wish to provide your end-users a dedicated page for them to sign up, sign in, or perform a password reset operation. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst will provide you with all backend support required to style and customize your login element to match your branding preferences.{{%/note%}} * {{%link href= "/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/introduction/" %}}{{%bold%}}Embedded Login{{%/bold%}}{{%/link%}}: This enables you to load your application's login element as an iFrame. <br /> You can implement this authentication type, if you want your end-users to complete their authentication process in the same page, without redirecting them to a separate page. For example, in the sample image above, the end-user can continue their login process, while viewing your application's website content or marketing collaterals. {{%note%}}{{%bold%}}Note:{{%/bold%}}You can find out how to customize and style this authentication type from this {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/styling-embedded-auth/" %}}help page{{%/link%}}.{{%/note%}} You can implement {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/" %}}Social Logins{{%/link%}} for both the authentication types. Additionally, you can also have your login element in a manner that allows users to access your application {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/scripts-for-embedded/" %}}exclusively through Social Logins{{%/link%}}. ### Benefits * You can choose to host your application's login element on a dedicated page or load it is an iFrame. * You can implement both the native authentication types, along with a third-party authentication, for each of your application. * You can provide your users with the option to sign up to your application by using popular {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/" %}}Social Logins{{%/link%}}. * You do not have to invest time or additional resources to set up a secure infrastructure, because with Native Catalyst Authentication, Catalyst secures all the end points of your application for you. With third-party authentication, you will need to handle the security of your application end-points. * You can set up both of these authentication methods from the console with a few steps, without requiring any additional backend support. <br /> ### Embedded Authentication Type -------------------------------------------------------------------------------- title: "Introduction" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.537Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Embedded Authentication Type Embedded authentication type is a native Catalyst authentication lets you load your login element as an iFrame in your application. This is the ideal authentication type to use if you require your end-users to sign up to your application without leaving the landing page. For example, the end-users can sign up or log in while they are viewing your application's website content or marketing collaterals. You can configure the iFrame to be loaded as a conventional login form. <br /> You can also configure the iFrame to let your end-users log in using only {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/" %}}social logins{{%/link%}}. <br /> You can access **Catalyst Web SDK scripts** for the *Conventional Login Form* and the *Social Logins Only Form* from the console when you set up Embedded Authentication, or from {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/scripts-for-embedded/" %}}this help page{{%/link%}}. You can simply copy and add the required script to your application's web client. You will not need to perform any additional coding. Catalyst handles all the necessary backend operations to secure your application and render your login element as an iFrame in your application. <br /> While the embedded authentication type does allow you to customize and style it as per your preference, you will not have the ease that you can expect while styling {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}Hosted Authentication Type{{%/link%}}. However, if you use Embedded Authentication along with Hosted Authentication type, then you can directly import styling elements you used for Hosted to be applied to your Embedded iFrame. You can also provide custom CSS your **Confirm Password** and **Password Reset** pages. Additionally, Catalyst will also provide you with a CSS sheet that you can download from the console. Along with this CSS sheet, you can refer the {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/styling-embedded-auth/" %}}Styling Embedded Authentication type help section{{%/link%}}, to style your iFrame and the login element, in a manner that does not induce any UI errors. This will be discussed further in the {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/setup-embedded-auth/" %}}setup section{{%/link%}}. -------------------------------------------------------------------------------- title: "Benefits" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.537Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/benefits/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Benefits * Embedded authentication is a type of Native Catalyst Authentication. This ensures that all end points of your application including end users' access to your application are secured by Catalyst. * Catalyst offers you the necessary scripts that you can plug in to your application to configure this authentication method. This will let load your login element as an iFrame in your application, considerably reducing your coding efforts. * You can style the login element per your preferences, and in a manner that reflects your company's branding, ensuring brand consistency. You can easily import this CSS into your login script. * If you are using Embedded Authentication along with Hosted Authentication, then you can directly import the styling elements you used to style your Hosted Login elements to your Embedded Authentication type. You can also easily apply custom styling by importing your CSS file. * Catalyst provides you with a CSS style-sheet for the default iFrame design, that you can simply download and customize as per your requirements. * You can implement the embedded authentication type in two ways—*Conventional Login Form* and *Social Login Form*. Each method allows you to provide the required sign in logic in your app, while ensuring a smooth end-user experience and complete security. -------------------------------------------------------------------------------- title: "Scripts for Embedded Authentication" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.537Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/scripts-for-embedded/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Scripts for Embedded Authentication Catalyst offers you the following scripts that you can incorporate in your web client application to implement Embedded authentication. For **Conventional Login Form** Type <br /> {{%code class="language-javascript line-numbers" scroll="set-scroll" %}}&lt;script src="https://static.zohocdn.com/catalyst/sdk/js/4.4.0/catalystWebSDK.js"&gt; &lt;/script&gt; &lt;script src="/__catalyst/sdk/init.js"&gt; &lt;/script&gt; &lt;script&gt; const config = {}; /* config is optional { css_url : "/css/embeddediframe.css", // Provide your custom CSS file path here. If no path is provided default css will be rendered service_url : "/app/index.html", // This value is optional. You can provide your redirect URL here. is_customize_forgot_password : true, // Default value is false. Keep this value as true, if you wish to customize Forgot Password page forgot_password_id : "forgotPasswordDivElementId", // The Element id in which forgot password page should be loaded,If no value is provided, it will be rendered in the "loginDivElementId" by default forgot_password_css_url : "/css/forgotPwd.css" // Provide your custom CSS file path for the Forgot Password page.If no path is provided,then the default CSS will be rendered. } */ catalyst.auth.signIn("loginDivElementId", config); &lt;/script&gt; {{% /code%}} <br /> For **Social Login-only Form** Type <br /> {{%code class="language-xml line-numbers"%}}&lt;script src="https://static.zohocdn.com/catalyst/sdk/js/4.4.0/catalystWebSDK.js"&gt; &lt;/script&gt; &lt;script src="/__catalyst/sdk/init.js"&gt; &lt;/script&gt; &lt;script&gt; const config = { signin_providers_only : true, // Set value as true to customize the sign in provider only form css_url : "/css/embeddediframe.css", // Provide your custom CSS file path here. If no path is provided default css will be rendered service_url : "/app/index.html" // Provide your redirect URL here. This value is optional. } catalyst.auth.signIn(elementId, config); &lt;/script&gt; {{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} These scripts are also available in the console. You can directly copy and enable them while you are setting up embedded authentication and in the {{%italics%}}Authentication Type{{%/italics%}} section of the console.{{%/note%}} -------------------------------------------------------------------------------- title: "Setup Embedded Authentication" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.537Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/setup-embedded-auth/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Setup Embedded Authentication To enable and configure Embedded Authentication type: 1. Navigate to **Authentication** in *Cloud Scale* section of the Catalyst console, and click the **Set Up** option present in the *Native Catalyst Authentication* section. <br /> 2. Select **Embedded Authentication** as the type of native authentication method, and click **Next**. <br /> 3. Enable CSS Customization - If you wish to provide a custom CSS for your **Confirm Password** and **Reset Password** elements: <br /> - Provide the file path of where you have stored the required CSS files in your project directory. <br /> - If you are using Embedded Authentication along with Hosted Login, you can inherit styling elements from Hosted Login: <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} No previews will be made available by Catalyst, for you to view the rendering of your login element, or the {{%bold%}}Reset Password{{%/bold%}} and {{%bold%}}Confirm Password{{%/bold%}} pages.{{%/note%}} 4. Choose how you wish your login element to be: * To load the login element as a conventional login form: Click the **Login Form** option in the *Configuration* step. Copy the script and paste it in the HTML file of your web client that contains the index of your application. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You can click {{%bold%}}View Sample Image{{%/bold%}} to view and compare how each of the login forms would appear to the end-user. These are only sample images, not the actual rendering of how the form will appear with your custom styling.{{%/note%}} * To load the login element with only the Social Logins or IdP sign in options: Click the **Social Login-Only Form** option in the *Configuration* step. Copy the script and paste it in the HTML file of your web client that contains the index of your application. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The {{%italics%}}Social Login-Only Form{{%/italics%}} can only be implemented if you have coded your web client application using the latest {{%link href="/en/sdk/web/v4/overview/" %}}Catalyst Web SDK{{%/link%}}. This method is only supported in {{%bold%}}v4{{%/bold%}} and not in the earlier versions.{{%/note%}} You can access earlier versions of embedded authentication, by clicking and choosing from the **Version** drop-down. However, ensure that you implement the latest version as this would include upgraded security definitions and enhancements. <br /> 5. Enable **Public Signup** if you wish new users to sign up to your application. You can find out more about this from the {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup help page{{%/link%}}. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You must enable {{%bold%}}Public Signup{{%/bold%}} if you want to allow your users to access your application through Social Logins.{{%/note%}} 6. You can select the Social Logins and enable them to allow your users to use them and sign up for your applications. You can learn about configuring each social login in detail from the {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/" %}}Social Logins help section{{%/link%}}. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} Ensure that you have {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} provided by the social login before you configure it here. You can find out about obtaining the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} values for each of the social login using this {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/" %}}step-by-step guide{{%/link%}}.{{%/note%}} 7. Click **Next** to save your configurations, and proceed to the {{%italics%}}Addional Settings{{%/italics%}} section. You can choose to include an additional authentication step by enabling the {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction" %}}{{%bold%}}Custom User Validation{{%/bold%}}{{%/link%}} option. This option allows you to validate your end-users using a {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/how-it-works" %}}custom logic{{%/link%}} that you code in a {{%link href="/en/serverless/help/functions/basic-io" %}}Basic I/O function{{%/link%}}. You can find out how to set this up in the {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/implementation" %}}Whitelisting help document{{%/link%}}. You can use the {{%italics%}}Authorized Domains{{%/italics%}} section to authorize external domains to have CORS and iFrame access to your application. You can find out how to set up authorized domains in the {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction" %}}Authorized Domain help section{{%/link%}}. <br /> 8. Click **Finish** to enable the Embedded Authentication type. <br /> You will now be able to view the authentication that you have set up in the {{%link href="/en/cloud-scale/help/authentication/authentication-types/" %}}Authentication Type{{%/link%}} section of *Authentication*. In this section, you can edit your Social Logins configurations by clicking the required Social Login tile and providing your new OAuth credentials. <br /> You can also edit your CSS Customization configurations: 1. Click the **Edit** button. <br /> 2. You can provide new custom CSS files, choose to inherit the styling you applied when you set up Hosted Authentication type, or even disable the customization. <br /> 3. Click **Update**. <br /> Your preferences will be rendered. <br /> You can also access the login scripts for embedded authentication at anytime from this section. -------------------------------------------------------------------------------- title: "Stlying Embedded Authentication" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.538Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/styling-embedded-auth/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Styling Embedded Authentication Type Catalyst enables you to style both variants of the embedded authentication type: * The conventional login form iFrame * The Social Login-only form iFrame You can also style the **Reset Password** and the **Confirm Password** pages by providing custom CSS files or by importing the styling elements you used to set up *Hosted Authentication* type. ### To change the style of the conventional iFrame: <br /> 1. Download the CSS file, and begin styling your iFrame login element after the last line of code as instructed in the file. {{%link href="https://api.catalyst.zoho.com/baas/v1/auth/static-file?file_name=embedded_signin.css" %}}Download here{{%/link%}}. 2. {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/reference-stylesheet-embedded/" %}}Refer to this document{{%/link%}}, to know the descriptions of each CSS component. ### To change the style of the Social Login-only form: <br /> 1. Download the CSS file, and begin styling your iFrame login element after the last line of code as instructed in the file. {{%link href="https://api.catalyst.zoho.com/baas/v1/auth/static-file?file_name=embedded_signin_providers_only.css" %}}Download here{{%/link%}}. 2. {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/reference-stylesheet-embedded/" %}}Refer to this document{{%/link%}}, to view the descriptions of each CSS component. ### To change the style of the Confirm Password iFrame: <br /> 1. Download the CSS file, and begin styling your iFrame login element after the last line of code as instructed in the file. {{%link href="https://api.catalyst.zoho.com/__catalyst/auth/static-file?file_name=confirm_password.css" %}}Download here{{%/link%}}. 2. {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/reference-stylesheet-embedded/#section-where-the-end-user-confirms-their-password/" %}}Refer to this document{{%/link%}}, to view the descriptions of each CSS component. ### To change the style of the Password Reset iFrame: <br /> 1. Click the download button to download the CSS file, and begin styling your document after the last line of code as instructed in the document. {{%link href="https://api.catalyst.zoho.com/baas/v1/auth/static-file?file_name=embedded_password_reset.css" %}}Download here{{%/link%}}. 2. {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/reference-stylesheet-embedded/" %}}Refer to this document{{%/link%}}, to view the descriptions of each CSS component. -------------------------------------------------------------------------------- title: " Reference for Embedded Authentication's Style-sheet" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.538Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/reference-stylesheet-embedded/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Refrence Style-sheet for Embedded Authentication This page lists and provides descriptions for all the CSS classes and IDs that you would require to style your login element with, in the {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/introduction/" %}}Embedded Authentication{{%/link%}} type. Catalyst provides individual CSS files for the Conventional Login form, Social-Login Only form, and Password Reset form, with individual CSS IDs and classes for them. These CSS IDs and classes are pre-defined by Catalyst for your ease. You can simply incorporate them into your style-sheet as per your need, and customize the design and branding of the login elements. You must import the CSS file you configure into your login form scripts of this authentication. Before you begin styling your iFrame, download the required CSS file. CSS style-sheet for: * Conventional Login form - {{%link href="https://api.catalyst.zoho.com/baas/v1/auth/static-file?file_name=embedded_signin.css" %}}Download{{%/link%}} * Social Login-only form - {{%link href="https://api.catalyst.zoho.com/baas/v1/auth/static-file?file_name=embedded_signin_providers_only.css" %}}Download{{%/link%}} * Confirm Password form - {{%link href="https://api.catalyst.zoho.com/__catalyst/auth/static-file?file_name=confirm_password.css" %}}Download{{%/link%}} * Password Reset form - {{%link href="https://api.catalyst.zoho.com/baas/v1/auth/static-file?file_name=embedded_password_reset.css" %}}Download{{%/link%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} After you download the style-sheet, begin styling your login element after the last line of code. We strongly recommend that you do not alter the code that is already present. Modifying it any way might not render the iFrame correctly. Refer to this {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/styling-embedded-auth/" %}}sheet{{%/link%}} for more detailed information on how each of the form mentioned above would appear to the end-users.{{%/note%}} ### Section where the end-user inputs their email address <br /> <br /> #### Section 1 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>#headtitle</td> <td>The ID that handles the styling elements present in the title of the iFrame</td> </tr> </tbody> </table> #### Section 2 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>#login_id</td> <td>The ID that handles the styling of the input field</td> </tr> <tr> <td>.fielderror</td> <td>The class that handles the size of the error text</td> </tr> <tr> <td>.errorlabel</td> <td>The class that handles the color scheme of the error message</td> </tr> <tr> <td>.errorborder</td> <td>The class that handles the border color that appears in the event of an error, around the input field</td> </tr> </tbody> </table> #### Section 3 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>#nextbtn</td> <td>The ID that handles the styling of the "{{%bold%}}NEXT{{%/bold%}}" button</td> </tr> </tbody> </table> #### Section 4 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>#forgotpassword</td> <td>The ID that handles the styling of the "{{%bold%}}Forgot Password{{%/bold%}}" literal</td> </tr> </tbody> </table> #### Section 5 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>.fed_div</td> <td>The class that handles the size, height, cursor and overflow of the social login option as a whole</td> </tr> <tr> <td>.zoho_fed_box</td> <td>The class that handles the color scheme of the Zoho social login</td> </tr> <tr> <td>.fed_icon</td> <td>The class that handles the size of the logos of all social logins</td> </tr> <tr> <td>..zoho_icon</td> <td>The class that handles the logo icon of the Zoho social login</td> </tr> </tbody> </table> ### Section where the end-user inputs their password <br /> <br /> #### Section 1 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>.username</td> <td>The class that handles the email address field</td> </tr> </tbody> </table> #### Section 2 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>.Notyou</td> <td>The class that handles the font size of the "{{%bold%}}Change{{%/bold%}} literal</td> </tr> <tr> <td>.bluetext</td> <td>The class that handles the color and other properties of the "{{%bold%}}Change{{%/bold%}}" literal</td> </tr> </tbody> </table> #### Section 3 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>#password</td> <td>The ID that handles the various properties of the input field</td> </tr> <tr> <td>.fielderror</td> <td>The class that handles the size of the error text</td> </tr> <tr> <td>.errorborder</td> <td>The class that handles the border color that appears in the event of an error around the input field</td> </tr> <tr> <td>.errorlabel</td> <td>The class that handles the color scheme of the error text</td> </tr> <tr> <td>.show_hide_password</td> <td>The class that handles the properties of the visibility-icon</td> </tr> <tr> <td>.icon_hide</td> <td>The class that handles the properties of the hidden-icon</td> </tr> <tr> <td>.icon_show</td> <td>The class that handles the properties of the visibility-icon when clicked</td> </tr> </tbody> </table> #### Section 4 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>.blue_text_action</td> <td>The class that handles the color scheme, font size and other properties of both the literals</td> </tr> </tbody> </table> #### Section 5 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>.blue</td> <td>The class that handles the color scheme of the Sign In button and box</td> </tr> <tr> <td>.btn</td> <td>The class that handles the size of the button</td> </tr> </tbody> </table> ### Section where the end-user confirms their password <br /> #### Section 1 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>.confirmtitle</td> <td>The class that handles the styling elements present in the title.</td> </tr> <tr> <td>.confirmdesc</td> <td>This is the notification/description element which is notify to create a strong and unique password at the bottom of the title element.</td> </tr> <tr> <td>.confirm_head</td> <td>The class that handles the styling of the Background of the confirmation form.</td> </tr> </tbody> </table> #### Section 2 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>.username</td> <td>The class that handles the email address field.</td> </tr> <tr> <td>.icon-profile</td> <td>The class that handles the profile in that email address field.</td> </tr> </tbody> </table> #### Section 3 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>#password</td> <td>The ID that handles the styling elements present in the password input field.</td> </tr> <tr> <td>.icon-hide</td> <td>The class that handles the properties of the hidden-icon</td> </tr> <tr> <td>.show_hide_password</td> <td>The class that handles the properties of the visibility of the icon</td> </tr> <tr> <td>.fielderror</td> <td>The class that handles the size of the error text.</td> </tr> <tr> <td>.passwordpolicy</td> <td>The class that handles the pop which contains the password policy.</td> </tr> </tbody> </table> #### Section 4 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>#cpassword</td> <td>The ID that handles the input field for confirm password.</td> </tr> </tbody> </table> #### Section 5 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>#nextbtn</td> <td>The ID that handles the confirm button.</td> </tr> </table> ### Section where the end-user inputs the CAPTCHA <br /> <br /> #### Section 1 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>#headtitle</td> <td>The ID that handles the styling elements present in the title of the iFrame</td> </tr> </tbody> </table> #### Section 2 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>.user_info</td> <td>The class that handles styling elements of the box's border</td> </tr> <tr> <td>.menutext</td> <td>The class that handles the styling of the user's email ID</td> </tr> </tbody> </table> #### Section 3 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>.changeuser</td> <td>The class that handles the styling elements present in the "{{%bold%}}Change{{%/bold%}}" literal</td> </tr> </tbody> </table> #### Section 4 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>#captcha_container</td> <td>The ID that handles the styling of the box surrounding the Captcha control box</td> </tr> <tr> <td>.reload_captcha ::before</td> <td>The class that handles the styling of the reload button, before it is clicked</td> </tr> <tr> <td>.text_box</td> <td>The class that handles the properties of the input field</td> </tr> </tbody> </table> #### Section 5 <br /> <table class="content-table"> <thead> <tr> <th class="w50p">CSS IDs & Classes</th> <th class="w50p">Description</th> </tr> </thead> <tbody> <tr> <td>.blue</td> <td>The class that handles the color scheme of the button and box</td> </tr> <tr> <td>.btn</td> <td>The class that handles the size of the button</td> </tr> </tbody> </table> ### Hosted Authentication Type -------------------------------------------------------------------------------- title: "Introduction" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.539Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Hosted Authentication Type This is a Native Catalyst Authentication type that enables you to host your login element on dedicated pages. You can configure and design the authentication from the console, and Catalyst will render it for your application and handle all the backend requirements. <br /> Hosted authentication enables you to create and style your entire login element as per your preferences. The customization includes adding your company's logo in the login elements, and the background and predominant colors of the windows and buttons. You can additionally implement {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction" %}}Social Login{{%/link%}} options with popular Identity providers (IdP), such as {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-zoho-social-login" %}}Zoho{{%/link%}}, {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-google-social-login" %}}Google{{%/link%}}, {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-facebook-social-login" %}}Facebook{{%/link%}}, {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-linkedin-social-login" %}}LinkedIn{{%/link%}}, and {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-microsoft-365-social-login" %}}Microsoft 365{{%/link%}}, by inputting the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} generated from the IdPs console. The hosted login element is made up of three pages, and Catalyst hosts each of these on a separate page with individual URLs: - {{%bold%}}The Sign Up Page{{%/bold%}}: This page enables the end user to sign up for your application by entering their first name, last name, and email address. They can also click the Sign in option, if they have already signed up to your application. <br /> {{%note%}}{{%bold%}}Note{{%/bold%}}: You need to enable {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}Public Signup{{%/link%}} to view the {{%bold%}}Sign Up{{%/bold%}} page{{%/note%}} - {{%bold%}}The Sign In Page{{%/bold%}}: This page enables your existing end user to log in to your application with their email address and password. <br /> - {{%bold%}}The Password Reset page{{%/bold%}}: This page enables your user to enter their email, mobile number or username to reset their password. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The secure URLs containing the endpoints for the Sign Up, Sign In, and Password Reset pages of your Hosted Login are automatically generated by Catalyst, and can be incorporated into your application client.{{%/note%}} <br /> -------------------------------------------------------------------------------- title: "Benefits" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.539Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/benefits/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Benefits * You can create your login elements on dedicated pages in your app, and design them to resonate with your brand, without any coding. * You can easily enable this authentication type and configure it directly from the console. Catalyst infrastructure ensures that even if you have configured another authentication type, you can additionally include Hosted Login in your app. * You can easily add social logins to your login element while setting this authentication method up. Catalyst provides you {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/" %}}step-by-step guides{{%/link%}} or configuring these social logins and obtaining the required OAuth credentials to add in the console. <br /> -------------------------------------------------------------------------------- title: "Configure Hosted Authentication" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.539Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/configure-hosted-authentication/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Configure Hosted Authentication Type To enable and configure Hosted authentication type: 1. Navigate to {{%bold%}}Authentication{{%/bold%}} in the {{%italics%}}Cloud Scale{{%/italics%}} section of the Catalyst console. Click the {{%bold%}}Set Up{{%/bold%}} option present in the {{%italics%}}Native Catalyst Authentication{{%/italics%}} section. <br /> 2. Select {{%bold%}}Hosted Authentication{{%/bold%}} as the type of native authentication method, and click {{%bold%}}Next{{%/bold%}}. <br /> 3. You can configure your login element now to reflect your company's brand. Enter the {{%italics%}}Company Name{{%/italics%}}, and upload the {{%italics%}}Company Logo{{%/italics%}} by clicking the upload-icon and choosing a file from your local system. <br /> {{%note%}}{{%bold%}}Note{{%/bold%}}: The file size of the {{%italics%}}Company Logo{{%/italics%}} must be {{%bold%}}5MB{{%/bold%}} or less and the file name must be {{%bold%}}150 characters{{%/bold%}} or less.{{%/note%}} 4. You can incorporate your company's colors in your login elements by choosing the primary color and background color from the color palette, or by entering their HEX values. <br /> 5. Enable {{%bold%}}Public Signup{{%/bold%}} if you wish to allow new users to sign up to your application. You can find out more on this from the {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup help page{{%/link%}}. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You must enable {{%bold%}}Public Signup{{%/bold%}} if you want to view the Sign Up page and allow your users to access your application through {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/" %}}Social Logins{{%/link%}}.{{%/note%}} 6. You can also select the Social Logins and enable them to allow your users to use them and sign up for your applications. You can learn about configuring each social login in detail from the {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction" %}}Social Logins help section{{%/link%}}. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} Ensure that you have {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} values for each of the social login using this {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/" %}}step-by-step guide{{%/link%}}.{{%/note%}} 7. In the {{%italics%}}Addional Settings{{%/italics%}} section you can choose to include an additional authentication step by enabling the {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction" %}}{{%bold%}}Custom User Validation{{%/bold%}}{{%/link%}} option. This option allows you to validate your end-users using a {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/how-it-works" %}}custom logic{{%/link%}} that you code in a {{%link href="/en/serverless/help/functions/basic-io" %}}Basic I/O function{{%/link%}}. You can find out how to set this up in the {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/implementation" %}}Whitelisting help document{{%/link%}}. You can use the {{%italics%}}Authorized Domains{{%/italics%}} section to authorize external domains to have CORS and iFrame access to your application. You can find out how to set up authorized domains in the {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction" %}}Authorized Domain help section{{%/link%}}. <br /> 9. Click {{%bold%}}Finish{{%/bold%}}, to enable the Hosted authentication type. <br /> You will now be able to view the authentication that you have set up in the {{%link href="/en/cloud-scale/help/authentication/authentication-types" %}}{{%italics%}}Authentication Type{{%/italics%}}{{%/link%}} section of {{%italics%}}Authentication{{%/italics%}}. You can view a more detailed preview of how the login element will appear to your end-user by clicking {{%bold%}}Access URL{{%/bold%}}. <br /> This will open a tab in your browser and load the {{%bold%}}Login Page{{%/bold%}} URL in a seperate tab in your browser, giving you an exact view of the entire login element that your end-user would access. <br /> You can similarly view the **Sign Up** and the **Password Reset** pages by clicking the drop-down icon and choosing the respective page, then clicking **Access URL**. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You must enable {{%link href="/en/cloud-scale/help/authentication/public-signup/public-signup" %}}Public Signup{{%/link%}}, to view the Sign Up page. You can always edit the configured authentication and enable it any time.{{%/note%}} <br /> -------------------------------------------------------------------------------- title: "Edited Hosted Authentication Type" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.539Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/edit-hosted-authentication/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Edit Hosted Authentication Type You will be able to preview and edit the company branding elements and enable or disable social logins per your preference. {{%note%}}{{%bold%}}Note:{{%/bold%}} <br />If you wish to: * Change any configuration you made in the *Additional Settings* section during the authentication set up, click the *Whitelisting* section, and visit the {{%link href="/en/cloud-scale/help/authentication/whitelisting/introduction" %}}Whitelisting help document{{%/link%}} for more information. * Edit Social Logins, visit {{%link href="/en/cloud-scale/help/authentication/social-logins/modifying-social-logins/" %}}this help section{{%/link%}}. * Set up a different authentication type, visit the {{%link href="/en/cloud-scale/help/authentication/authentication-types" %}}{{%italics%}}Authentication Type{{%/italics%}} help document{{%/link%}} to know how to add a manage multiple authentication types. * Disable/enable Public Signup, and the actions that will follow, refer to the {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup help page{{%/link%}}. {{%/note%}} To edit the Hosted Authentication type: 1. Click the **Edit Page** option present in the review section, and edit the branding and functional elements of the Sign Up, Sign In, and Reset Password pages. <br /> 2. You can edit the *Company Name*, *Company Logo*, the branding colors, and {{%link href= "/en/cloud-scale/help/authentication/social-logins/modifying-social-logins/" %}}edit, enable or disable social logins{{%/link%}} and {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/" %}}configure{{%/link%}} them. You will be able to view live preview of the edits. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}}Note: You can click {{%bold%}}Maximize{{%/bold%}} to preview the changes in full screen, and click {{%bold%}}Minimize{{%/bold%}} to go back to the configuration section.{{%/note%}} 3. Click **Confirm**, to save the changes. <br /> You can view the updated login element back in the {{%link href="/en/cloud-scale/help/authentication/authentication-types" %}}{{%italics%}}Authentication Types{{%/italics%}}{{%/link%}} section. <br /> <br /> ## Social Logins -------------------------------------------------------------------------------- title: "Introduction" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.539Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/social-logins/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Social Logins Catalyst enables you to allow your end users to log on to your application using popular Identity Providers (IdP) or *Social Logins*. You can configure and add social logins to your login element directly from the console. {{%note%}}{{%bold%}}Note:{{%/bold%}} To enable Social Logins, you must first enable {{%link href="/en/cloud-scale/help/authentication/public-signup" %}}Public Signup{{%/link%}}{{%/note%}} Catalyst offers support for you to implement the following social logins: * {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-zoho-social-login" %}}Zoho{{%/link%}} * {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-google-social-login" %}}Google{{%/link%}} * {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-facebook-social-login" %}}Facebook{{%/link%}} * {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-linkedin-social-login" %}}LinkedIn{{%/link%}} * {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-microsoft-365-social-login" %}}Microsoft 365{{%/link%}} These social logins can be configured with Catalyst by utilizing the industry standard OAuth protocol, i.e., by configuring the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} for your Catalyst application provided by the IdP service. {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst offers you support to implement these social logins directly from the console in both its {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/introduction/" %}} Native Catalyst Authentication types{{%/link%}}. However, should you wish to implement them while using {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/" %}}Third Party Authentication{{%/link%}}, you will have to code the logic.{{%/note%}} ### Benefits * Enabling your end-users to log in to your application using Social Logins aids them in accessing your application easily and quickly without compromising security. It provides them with a more streamlined login experience by eliminating password fatigue and making it more mobile-friendly. * Catalyst provides support to manage the backend requirements of implementing social logins in your login element. You can easily enable them once you set up the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} from your preferred Identity Providers (IdP). * You can configure a login element with {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/introduction/" %}}Embedded Authentication{{%/link%}} that authenticates users using only Social Logins. This lets you authenticate users securely with minimal efforts. * You can enable and disable them per your preference directly from the console, with no additional coding. * By implementing Social Logins on your application you also reduce the chance for fake accounts. ### Configure Authorized URIs To enable Social Logins for your application, you require an authorized URI to generate the required client tokens. The steps to configure the Authorized URI is the same for all of the Social Logins, for the purposes of this help document, we are goin to illustrate the steps using the Google Social Login: 1. Click the required social login, from the console: <br /> 2. Copy the Authorized URI, and replace the placeholders as instructed in the console <br /> {{%note%}}{{%bold%}}Key Terminology{{%/bold%}} * {{%badge%}}{{%bold%}}appdomain{{%/bold%}}{{%/badge%}}: {{%badge%}}appdomain{{%/badge%}}is a placeholder in the Authorized URI generated by Catalyst. It is a place holder for the domain of your application. Your application's domain will be generated and listed in the {{%link href="/en/cloud-scale/help/web-client-hosting/introduction/" %}}Web Client Hosting{{%/link%}} component after you deploy your application to the console. You can also add a cusotm domain that tou have mapped to your application. * {{%badge%}}{{%bold%}}ZAID{{%/bold%}}{{%/badge%}}: {{%badge%}}ZAID{{%/badge%}} is a unique portal ID generated by Catalyst to map your project to the right environment.{{%/note%}} For example, The URI when its first copied, will be in the following format: **https://{{appdomain}}/accounts/pfs/{{dev or prod zaid}}/clientidpcallback** To make this a valid URI, copy your app domain and replace it with the **{{appdomain}}** placeholder and copy the development {{%badge%}}ZAID{{%/badge%}} value and replace it with the **{{dev or prod zaid}}** placeholder. Your completed URI will resemble the following URI: **https<span></span>://authorizationportal-779513891.development.catalystserverless.com/accounts/pfs/1011958529/clientidpcallback** {{%note%}}{{%bold%}}Note:{{%/bold%}} * While configuring the Authorized URI to a valid URI, you can also use a custom domain of your choice. * When you migrate your application to production, you need to reconfigure the social logins using the the production {{%badge%}}appdomain{{%/badge%}} and production {{%badge%}}ZAID{{%/badge%}}, for the social logins to function in the production environment.{{%/note%}} -------------------------------------------------------------------------------- title: "Configure Social Logins" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.540Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Configure Social Logins Before you enable Social Logins while setting up an authentication method, you must complete certain steps to ensure you have the required {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} for each service that you require. This involves configuring an app in the respective social login's developer console, and fetching the OAuth credentials. You will also need to have your own account with each of the Social Login providers to access their developer consoles. {{%note%}}{{%bold%}}Note:{{%/bold%}} {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup{{%/link%}} must be enabled to use Social Logins.{{%/note%}} ### Enable Zoho Social Login To enable Zoho sign in option in your application, you need to acquire the OAuth credentials for your application from the Zoho API Console in the following manner: 1. Navigate to the **Zoho API Console** from {{%link href="https://api-console.zoho.in/" %}}here{{%/link%}}, and click **ADD CLIENT**. <br /> 2. Select **Server-based Applications**, and click **CREATE NOW**. <br /> 3. Provide the name of your application as the client name. <br /> 4. Provide the **Homepage URL**, and the required **Authorized Redirect URIs**. * You can get the Authorized Redirect URIs, by following the steps detailed in this {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/#configure-authorized-uris" %}}help document{{%/link%}}. * Ensure you enter the redirect URIs of your application in the following format: - {{%bold%}}https<span>://accounts.zohoportal.com/accounts/extoauth/ZAID/clientcallback{{%/bold%}} - {{%bold%}}https<span>://{{appdomain}}/accounts/pfs/ZAID/clientidpcallback{{%/bold%}} <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} To ensure that the Social Logins are enabled when you migrate your app to production, you need to reconfigure them using the {{%badge%}}Production ZAID{{%/badge%}}, and the appropriate app domain.{{%/note%}} 5. Click **CREATE**. The required {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} values will be displayed. <br /> 6. You can copy the required {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} credentials from the API console and paste it in the respective fields in the Catalyst console, and click **Enable**. <br /> Your end users can now sign up to your application using their Zoho credentials. ### Enable Google Social Login To enable Google sign in option in your application, you must obtain the required OAuth credentials for your application from Google in the following manner: 1. Login to the {{%link href="https://console.developers.google.com/apis/credentials" %}}Google API Console{{%/link%}} and click **Create Project**. 2. Click **New Project**. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} If you had already created a project in the Google developer console for your application, select your existing project. Skip the next step for an existing project.{{%/note%}} 3. Enter the required information and click **Create**. <br /> 4. After the project has been created, navigate to the **Credentials** page. You will be asked to configure the *OAuth consent screen* with your application details, if it is a new project. Click **Configure Consent Screen**. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} If this is not a new project, you can modify some information about your application. Navigate to the {{%italics%}}OAuth consent screen{{%/italics%}} page. Click {{%bold%}}EDIT APP{{%/bold%}}, then follow the steps below.{{%/note%}} 5. Choose a user type for your app and click **Create**. <br /> 6. Provide the required information. <br /> 7. In the **App domain** section, under the *Application home page* section provide your applications home page. Enter the other information as required and click **Save And Continue**. <br /> 8. In the *Scopes* section, click **Edit**, if you wish to add or manage scopes other than the default section. <br /> 9. Select the scopes you require from the options listed. You can also manually provide the applicable scopes in the *Manually add scopes section*, and click **UPDATE**. Click **SAVE AND CONTINUE** once you have configured the scopes. <br /> 10. In the **Summary** section, confirm your configurations and click the **Edit** button should you need to edit any of the configuration. <br /> 11. Navigate back to the *Credentials* page and click **Create Credentials**. Select **OAuth client ID** from the drop-down list. <br /> 12. Select **Web application** as the type of your application your app is going to be from the drop-down selection of **Application type**. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} Even if you host your application as an Android app, iOS, or a Flutter app, the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} to enable the social login will be the same, and can be obtained by choosing the application type as {{%bold%}}Web application{{%/bold%}}.{{%/note%}} * Enter the name of your application. <br /> * Click **ADD URI** under *Authorised JavaScript origins* and Click **ADD URI** under *Authorised redirect URIs* and enter the redirect URIs of your application in the following format: * {{%bold%}}https<span>://accounts.zohoportal.com/accounts/extoauth/ZAID/clientcallback{{%/bold%}} * {{%bold%}}https<span>://{{appdomain}}/accounts/pfs/ZAID/clientidpcallback{{%/bold%}}<br /> This URI can be copied from the Google Social Login pop-up, and steps to enable this URI is shown in this {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/#configure-authorized-uris" %}}help document{{%/link%}}:<br /><br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The {{%badge%}}ZAID{{%/badge%}} value can be obtained from the {{%bold%}}Google Social Login{{%/bold%}} pop-up. However, to ensure that the Social Logins are enabled when you migrate your app to production, you need to reconfigure them using the {{%badge%}}Production ZAID{{%/badge%}}, and the appropriate app domain.{{%/note%}} <br /> Click **Create**, once you have added the required information. * You will now be directed to pop up displaying the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}}. You can copy the values and download the {{%badge%}}JSON{{%/badge%}} file containing the same. <br /> 13. Now, click the **Google** social login present in the Catalyst console and enter the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} you copied from the Google console, and click **Enable**. <br /> Your end users can now sign up to your application using their **Google** credentials. ### Enable Facebook Social Login To enable Facebook sign in option in your application you need to obtain the required **OAuth credentials** for your application from Facebook in the following manner: 1. Open the Facebook developer page: {{%link href="https://developers.facebook.com" %}}Meta Developer Console{{%/link%}} 2. Log in to Facebook, and click the **My Apps** option. <br /> 3. Click on **Create App** <br /> 4. Based on your requirement, you can choose to connect your business portfolio to the meta console. Since, this is not required to configure the social login, we click the relevant option and click **Next**. <br /> 5. Select the "**Authenticate and request data from users with Facebook Login**" and click **Next**. <br /> 6. Enter the required details and click **Next**. <br /> 7. Review your configurations and click **Create App**. <br /> 8. You will now be directed to the *Dashboard* of the Facebook developer console. Select the "**Customize adding a Facebook Login button**" option. <br /> You will be directed to the *Customization* section of the *Facebook Login*. <br /> 9. Click the **Settings** tab in the left-panel. <br /> 10. Scroll down to the *Client OAuth Settings* section. <br /> 11. In the **Valid OAuth Redirect URIs** input field section, provide the OAuth Redirect URIs in the following format: * **https<span></span>://accounts.zohoportal.com/accounts/extoauth/ZAID/clientcallback** * **https<span></span>://{{appdomain}}/accounts/pfs/ZAID/clientidpcallback** <br/> This URI can be copied from the Facebook Social Login pop-up, and steps to enable this URI is shown in this {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/#configure-authorized-uris" %}}help document{{%/link%}}: <br/> {{%note%}}{{%bold%}}Note:{{%/bold%}} The {{%badge%}}ZAID{{%/badge%}} value can be obtained from the {{%bold%}}Facebook Social Login{{%/bold%}} pop-up. However, to ensure that the Social Logins are enabled when you migrate your app to production, you need to reconfigure them using the {{%badge%}}Production ZAID{{%/badge%}}, and the appropriate app domain.{{%/note%}} <br/> Click **Save Changes**. 12. You will be directed back to the *Dashboard*. Now select the "**Basic**" option present in the *App Settings* section of the console, and copy and save the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} details generated by Facebook. Click **Save Changes** once you have completed reviewing the details. <br/> 18. You can now enable the **Facebook Social Login** in the console. Click the **Facebook** option and paste the **App ID** value in the {{%badge%}}Client ID{{%/badge%}} field and the **App Secret** value in the {{%badge%}}Client Secret{{%/badge%}} field, and click **Enable**. <br/> Your end users can will now be able to sign up to your application using their Facebook credentials. ### Enable LinkedIn Social Login To enable LinkedIn sign in option in your application you need to obtain the required **OAuth credentials** for your application from LinkedIn in the following manner: {{%note%}}{{%bold%}}Note:{{%/bold%}} * Before you implement the following steps, ensure you have created a {{%link href="https://www.linkedin.com/help/linkedin/answer/a543852/create-a-linkedin-page?lang=en" %}}LinkedIn page{{%/link%}} to represent your company or organization. This page is mandatory to configure LinkedIn social login. * LinkedIn uses {{%badge%}}{{%bold%}}OpenID Connect{{%/bold%}}{{%/badge%}} protocols and not {{%badge%}}{{%bold%}}OAuth{{%/badge%}}{{%/bold%}} protocols. For more information on this update, visit {{%link href="https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin-v2" %}}LinkedIn's documentation page{{%/link%}}{{%/note%}} 1. Login to the LinkedIn developer page: http://developer.linkedin.com 2. Click the **Create App** button in the center of the page. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You can also navigate to the {{%italics%}}My Apps{{%/italics%}} section present in the taskbar and click {{%bold%}}Create App{{%/bold%}}.{{%/note%}} 3. Enter the required information, such as the app name, privacy policy URL, and the app's logo. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} If you have not created a LinkedIn page for your application, you can do so now by clicking the {{%link href="https://www.linkedin.com/help/linkedin/answer/a543852/create-a-linkedin-page?lang=en" %}}{{%bold%}}+Create a new LinkedIn Page{{%/bold%}}{{%/link%}} button.{{%/note%}} 4. Agree to the terms and conditions and click **Create app**. <br /> 5. Now verify your application by clicking the **Verify** button that appears next to your application's LinkedIn page. <br /> * Click **Generate URL** to generate verification URL. <br /> * Complete the verification process, and click **I'm done**. <br /> 6. In the *Settings* section, add your application URL to the *Domain* input field of the **Widgets** section if necessary. <br /> 7. Navigate to the *Products* tab, select "**Sign in with LinkedIn Using OpenID Connect**", and click **Request Access**. <br /> Read and accept the terms and conditions, click the **Request Access** button to allow sign ups with LinkedIn using {{%badge%}}OpenID connect{{%/badge%}}. <br /> 8. Click the **Auth tab**, and copy the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} present in the Authentication keys section. In the **OAuth 2.0** scopes section you will be able to view three scopes have been added: * {{%badge%}}openid{{%/badge%}} * {{%badge%}}profile{{%/badge%}} * {{%badge%}}email{{%/badge%}} <br /> 9. Now click the *Auth tab*, and copy the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} present in the *Authentication keys* section. In the *Auth 2.0 settings* section add **Authorized Redirection URLs** of your application in the following format: * {{%bold%}}https<span>://accounts.zohoportal.com/accounts/extoauth/ZAID/clientcallback{{%/bold%}} * {{%bold%}}https<span>://{{appdomain}}/accounts/pfs/ZAID/clientidpcallback{{%/bold%}}<br /> This URI can be copied from the LinkedIn Social Login pop-up, and steps to enable this URI is shown in this {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/#configure-authorized-uris" %}}help document{{%/link%}}:<br /><br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The {{%badge%}}ZAID{{%/badge%}} value can be obtained from the {{%bold%}}LinkedIn Social Login{{%/bold%}} pop-up. However, to ensure that the Social Logins are enabled when you migrate your app to production, you need to reconfigure them using the {{%badge%}}Production ZAID{{%/badge%}}, and the appropriate app domain.{{%/note%}} <br /> 10. Click the **LinkedIn Social Login** option present in the console, and add the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} obtained. Then, click **Enable**. <br /> Your end users can now sign up to your application using their LinkedIn credentials. ### Enable Microsoft 365 Social Login To enable **Microsoft 365** sign in option in your application you will need to obtain the requisite **OAuth credentials** for your application with Microsoft Azure in the following manner: 1. Open {{%link href="https://login.microsoftonline.com/common/oauth2/authorize?resource=https%3a%2f%2fmanagement.core.windows.net%2f&response_mode=form_post&response_type=code%2Bid_token&scope=user_impersonation%2Bopenid&state=OpenIdConnect.AuthenticationProperties%3dBfkwHFJ3Egk92KL8DPHN2-RQjP-h_WwVeILIb8XOeiHICZaVr0nG2-yhM_KcVOmT_8fXBwSbnsYJwBG_EoCgAkuxqj9DQYKycadknX5B1H3zrlC5ZweOVaj0jaNFa83WvK8h8EetcYOBsZODvR81D0WlMn4etuNsZss49RYPT83fjHN6fopQee6PTqF0_2F6BooYsnCo-xkZu_msvizJsCf3syueh-NhcznRUENLcQK1ri7lLfT16wWqixbKO6cRFVIY6bwUxAsWts8rJM58JA&nonce=637021409072386485.M2Q0NzQ4MGYtM2EzNy00ODlhLWI4NjYtNTc3MmM5ZGJlN2NhN2RjNGUwMWUtYzdkYS00OTQzLWI1MjYtNTM5NzJjODA0ODlk&client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c&redirect_uri=https%3a%2f%2fportal.azure.com%2fsignin%2findex%2f%3ffeature.refreshtokenbinding%3dtrue&site_id=501430&client-request-id=e67688f1-801d-41b0-b748-db616b4b7b06&x-client-SKU=ID_NET&x-client-ver=1.0.40306.1554" %}}Microsoft Azure{{%/link%}} and login to the console. <br /> 2. Navigate to the menu section of the console and click **App Registrations**. <br /> 3. Click **New Registration**. <br /> 4. Enter the application name, choose the required permission. In the **Redirect URI** section, choose **Web** and enter the URI in the following format:<br />{{%bold%}}https<span>://{{appdomain}}/accounts/pfs/ZAID/clientidpcallback{{%/bold%}}<br /> This URI can be copied from the Microsoft 365 Social Login pop-up, and steps to enable this URI is shown in this {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/#configure-authorized-uris" %}}help document{{%/link%}}:<br /><br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The {{%badge%}}ZAID{{%/badge%}} value can be obtained from the {{%bold%}}Microsoft 365 Social Login{{%/bold%}} pop-up. However, to ensure that the Social Logins are enabled when you migrate your app to production, you need to reconfigure them using the {{%badge%}}Production ZAID{{%/badge%}}, and the appropriate app domain.{{%/note%}} <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You will have to add the second URI in a later step.{{%/note%}} 5. You will now be directed to the *Overview* section. Here you can copy the Application ID ({{%badge%}}Client ID{{%/badge%}}). <br /> 6. Click the **Redirect URIs** section. <br /> * In the *Redirect URI* section, click **Add URI** and add the second URI in the following format:{{%bold%}}https<span></span>://accounts.zohoportal.com/accounts/extoauth/ZAID/clientcallback{{%/bold%}}<br /> <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} The {{%badge%}}ZAID{{%/badge%}} value can be obtained from the {{%bold%}}Microsoft 365 Social Login{{%/bold%}} pop-up. However, to ensure that the Social Logins are enabled when you migrate your app to production, you need to reconfigure them using the {{%badge%}}Production ZAID{{%/badge%}}, and the appropriate app domain.{{%/note%}} 7. Now, navigate to the **Certificates & secrets** section from the menu-bar, and click the *Client secrets* section. <br /> 8. Click **New Client Secret**, to generate {{%badge%}}Client Secret{{%/badge%}}. <br /> 9. Enter the required details and click **Add**. <br /> 10. Copy the key present under the ({{%badge%}}Value{{%/badge%}}) section. <br /> 11. Click the **Microsoft 365 Social Login** option present in the console and add the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} obtained and click **Enable**. <br /> -------------------------------------------------------------------------------- title: "Modifying the Social Logins" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.541Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/social-logins/modifying-social-logins/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Modifying the Social Logins Once you have configured the Social Logins, you will be able to modify, disable and delete them in the {{%link href="/en/cloud-scale/help/authentication/authentication-types/" %}}*Authentication Types*{{%/link%}} section. <br /> ### Updating the Social Login To update the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}}: 1. Click the icon of the social login you wish to update. <br /> 2. Click the ellipsis icon and choose the **Edit** option. <br /> 3. Make the necessary changes and click **Update**. <br /> ### Disable a Social Login You can temporarily disable a social login from your authentication element. After you disable a social login, the end-users will not be able to sign up/sign in using the disabled social login option. However, the values of the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} will still be stored with Catalyst. {{%note%}}{{%bold%}}Note:{{%/bold%}} If you choose to enable a social login again at some point, you can simply re-enable it here without having to re-configure the OAuth credentials, and it will be active once again.{{%/note%}} To disable a social login, click the icon of the social login you wish to disable: 1. Click the ellipsis icon and select **Disable**. <br /> 2. Click **Yes, Proceed**. <br /> The social login will be disabled. To re-enable a social login, click the icon of the disabled social login and click **Enable**. <br /> ### Delete a Social Login After you delete a social login, the end-users will not be able to sign up/sign in using the deleted social login option. The values of the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} will be permanently deleted from the Catalyst console. To delete a social login, click the icon of the social login you wish to delete: 1. Click the ellipsis icon and select **Delete**. <br /> 2. Click **Yes, Proceed**. <br /> The social login will be deleted from your login element. You will have to re-enter the {{%badge%}}Client ID{{%/badge%}} and {{%badge%}}Client Secret{{%/badge%}} to enable the social login again. ## Third-party Authentication -------------------------------------------------------------------------------- title: "Introduction" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.541Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/third-party-authentication/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Third-party Authentication Catalyst powers developers by enabling them to implement any third-party authentication service like WatchGuard AuthPoint, Cisco Secure Access by Duo, The Okta Identity Cloud, etc., in their Catalyst application. Catalyst will provide the necessary backend support and scripts you require to securely incorporate a third-party authentication service of your choice. {{%note%}}{{%bold%}}Note:{{%/bold%}} Given that you are implementing a third-party authentication service, it is understood that the security infrastructure of your application is contingent on the efficiency of the third-party service that you have chosen. Catalyst will not handle any backend infrastructure setup or security implementation for your application users.{{%/note%}} The authorization and validation of the end-user is handled by the third-party service, and the data is passed on to Catalyst. Catalyst will provide you with server-side and client-side scripts to generate a required custom token with the authenticated user's details, and to process the token in the front-end of the application respectively, to log the user in. ### Benefits * Authentication provides you with all the required scripts to generate custom tokens to incorporate third-party authentication into your Catalyst application. This saves you considerable efforts in configuring the logic from the third-party service within your application. * You can easily incorporate any third-party authentication service and add end-users to your Catalyst application. This provides you with limitless flexibility, and allows you to pick a service of your choice based on your business requirements. * If you have an existing subscription with a third-party authentication service, you can easily use the same for your Catalyst application. * The scripts to generate the custom server token is available in multiple programming languages—{{%link href="/en/sdk/java/v1/cloud-scale/authentication/third-party-server-token/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/" %}}Node.js{{%/link%}} and {{%link href="/en/sdk/python/v1/cloud-scale/authentication/third-party-server-token/" %}}Python{{%/link%}}. This provides compatibility with your existing application code, and allows you to easily incorporate the script in a language of your preference. -------------------------------------------------------------------------------- title: "Workflow" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.542Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/third-party-authentication/workflow/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Workflow of Third-party Authentication in Catalyst Applications The following is a step-by-step drill down of the process of how an end-user authenticated by a third-party authentication service will log in to your Catalyst application: <br /> 1. When the end-user enters their details to log in to your application, they will be forwarded to the third-party authentication service that you have chosen. 2. The user details will be verified and stored in the database of the third-party service after the authentication logic is passed. 3. The user details will then be passed to the Catalyst client application. 4. The details will then be redirected to the authentication function that you code. This authentication function must include the Catalyst server-side script to generate a custom server token for the authenticated user. {{%note%}}{{%bold%}}Note:{{%/bold%}} The code to generate the token is be provided to you in the Catalyst console. It is also available in the {{%link href="/en/sdk/java/v1/cloud-scale/authentication/third-party-server-token/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/" %}}Node.js{{%/link%}} and {{%link href="/en/sdk/python/v1/cloud-scale/authentication/third-party-server-token/" %}}Python{{%/link%}} SDK docs.{{%/note%}} 5. This token will then be passed to the Web SDK incorporated in the client code. 6. The user will be logged in to your application using a JSON Web Token ({{%badge%}}JWT{{%/badge%}}) generated from the client script, which will contain the authenticated user's details. 7. **(a)**. The user will now have access to the components of your application through its endpoints. Catalyst Security Engine ensures that all Catalyst components associated with the application are accessed securely by users. {{%note%}}{{%bold%}}Note:{{%/bold%}} If the end-user is accessing your application for the first time (a signup process), the user details will be added to {{%link href="/en/cloud-scale/help/authentication/user-management/introduction/" %}}{{%italics%}}User Management{{%/italics%}}{{%/link%}} in the Authentication component. Apart from this, the sign-in workflow will remain the same.{{%/note%}} 7. **(b)**. The user's details along with the token information will also be stored in the browser cookie through the Web SDK, to ensure their session is maintained. {{%note%}}{{%bold%}}Note:{{%/bold%}} The token will remain valid only for {{%bold%}}one hour{{%/bold%}}. After that the steps from 1 to 8 will be repeated in the background.{{%/note%}} #### Workflow of an authenticated user logging into your application while the token is still active After a user is authenticated and the login session is persisting, the user can securely access all the end points of your application until the time the token is active. -------------------------------------------------------------------------------- title: "Implementation" description: "Catalyst Authentication enables you to provide secure authentication and sign-ins for your app users, and manage their user accounts." last_updated: "2026-03-18T07:41:08.542Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/third-party-authentication/implementation/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Set Up Third-party Authentication Type in Catalyst Before you implement a third-party authentication service in Catalyst, you must ensure that you have first completed handling the third-party logic in the external service. To set up a third-party authentication method for your Catalyst application: 1. Navigate to **Authentication** under *Cloud Scale* in the Catalyst console. Click the **Set Up** option in the third-party Authentication section to begin setting up the authentication type. <br /> 2. To proceed further and to allow end-users to sign up to your application, you have to enable **Public Signup**. You can learn more about this from the {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup{{%/link%}} help page. <br /> 3. You must generate a custom server token to incorporate into your authentication function. * Choose **Java**, **Node.js**, or **Python** based on your preference, and copy the Catalyst script provided in it. Implement this into your backend logic which will generate the token when executed. * Click **Next**, to continue with the setup. {{%note%}}{{%bold%}}Note:{{%/bold%}} * The scripts to generate a custom server token is also available in the respective {{%link href="/en/sdk/java/v1/cloud-scale/authentication/third-party-server-token/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/" %}}Node.js{{%/link%}} and {{%link href="/en/sdk/python/v1/cloud-scale/authentication/third-party-server-token/" %}}Python{{%/link%}} SDK help sections. You can also access these scripts in the {{%link href="/en/cloud-scale/help/authentication/authentication-types/" %}}{{%italics%}}Authentication Types{{%/italics%}}{{%/link%}} section after you have set up third-party authetication. * Values of {{%badge%}}role_name{{%/badge%}}, and {{%badge%}}org_id{{%/badge%}} are optional and not explicitly required to generate the server-side token. You can find out how to obtain the values of {{%link href= "/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}{{%badge%}}org_id{{%/badge%}}{{%/link%}} and {{%link href= "/en/cloud-scale/help/authentication/user-management/roles/introduction/" %}}{{%badge%}}role_name{{%/badge%}}{{%/link%}} from their respective help pages. {{%/note%}} 4. You can now copy the script that passes the generated token from the backend to the web client, and logs the user in to your application, if the they were successfully validated by the third-party authentication service. <br /> * Copy the Catalyst script present in the console under the *Client-Side Configuration* section. Implement this into your client code, which will process the server token and generate a {{%badge%}}JWT{{%/badge%}} when executed. * Click **Next** to continue with the setup. 5. Next, in the {{%italics%}}Addional Settings{{%/italics%}} section, you can choose to include an additional authentication step by enabling the {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction" %}}{{%bold%}}Custom User Validation{{%/bold%}}{{%/link%}} option. This option allows you to validate your end-users using a {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/how-it-works" %}}custom logic{{%/link%}} that you code in a {{%link href="/en/serverless/help/functions/basic-io" %}}Basic I/O function{{%/link%}}. You can find out how to set this up in the {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/implementation" %}}Whitelisting help document{{%/link%}}. You can use the {{%italics%}}Authorized Domains{{%/italics%}} section to authorize external domains to have CORS and iFrame access to your application. You can find out how to set up authorized domains in the {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction" %}}Authorized Domain help section{{%/link%}}. <br /> 6. Click **Finish** to enable the third-party authentication type. <br /> In the {{%link href="/en/cloud-scale/help/authentication/authentication-types/" %}}{{%italics%}}Authentication Types{{%/italics%}}{{%/link%}} section, Catalyst will display a confirmation that a third-party authentication service has been enabled and your application's authentication is being handled by it. You will also be able to access the Catalyst scripts to copy and use any time, and log end-users in to your application after being authenticated by the third-party service. ## User Management -------------------------------------------------------------------------------- title: "Introduction" description: "User Management allows you to directly add end-users to your application and assign them custom roles" last_updated: "2026-03-18T07:41:08.542Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/user-management/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # User Management The *User Management* feature of the Authentication component enables you to manage {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/" %}}users{{%/link%}} that have signed up to your application. User Management also enables you to configure and maintain different {{%link href="/en/cloud-scale/help/authentication/user-management/roles/implementation/" %}}roles{{%/link%}} for each user. {{%note%}}{{%bold%}}Note:{{%/bold%}} You will have to enable at least one authentication type to access this section.{{%/note%}} You can add an end-user to your application in four different ways: 1. The application developer or a collaborator of the Catalyst project can {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#adding-a-new-user-from-the-console" %}}add a new user{{%/link%}} from Authentication in the Catalyst console after implementing one of the authentication types- {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}Hosted{{%/link%}}, {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/introduction/" %}}Embedded{{%/link%}}, and {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/" %}}Third-party{{%/link%}}. 2. The application developer or collaborator can also add a user using {{%link href="/en/sdk/java/v1/cloud-scale/authentication/add-new-user/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/add-new-user/" %}}Node.JS{{%/link%}}, {{%link href="/en/sdk/python/v1/cloud-scale/authentication/add-new-user/" %}}Python{{%/link%}}, or {{%link href="/en/sdk/web/v4/cloud-scale/authentication/add-new-user/" %}}Web{{%/link%}} SDKs or the {{%link href="/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser" %}}API{{%/link%}}s. 3. You can distribute the URL of your application to the user through other mediums and enable them to sign-up to it through the application's sign-up page. 4. You can enable provisions for a {{%link href= "/en/cloud-scale/help/authentication/user-management/roles/introduction/" %}}user to be added by another existing user{{%/link%}} of the application with the necessary privileges, such as a user of the role App admin. You can incorporate this feature in your application's logic. Catalyst will send an email invite to the user who was added containing a URL that will open a sign-up form where they can set up their password, in all four cases. After they set up their password, they will either be redirected to the {{%link href="/en/cli/v1/project-directory-structure/introduction/" %}}default redirect URL of the application{{%/link%}} or the URL you specify while inviting the user from the console. {{%note%}}{{%bold%}}Note:{{%/bold%}} You will be able to add a maximum of 25 users in your application in the development environment. After you deploy your application to production, you can include any number of end-users in it.{{%/note%}} The *User Management* feature includes two sections in the console. 1. {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#adding-a-new-user-from-the-console" %}}Users{{%/link%}}: You can add end-users to your application in this section directly, and they will receive email invites. You also be able to enable or disable their access to the application, view or modify their details, and delete them from the application. <br /> 2. {{%link href="/en/cloud-scale/help/authentication/user-management/roles/implementation/" %}}Roles{{%/link%}}: This section enables you to create and configure user roles, based on your business and organizational requirements. You will also be able to view all the user roles available in the project, along with all their details, and edit them, if required. <br /> <br /> ### Roles -------------------------------------------------------------------------------- title: "Introduction" description: "User Management allows you to directly add end-users to your application and assign them custom roles" last_updated: "2026-03-18T07:41:08.542Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/user-management/roles/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Roles ### Introduction Roles define a set of permissions and the level of access granted for a user to access your application or modify its data. You can define the scopes and access permissions for certain Catalyst components to each role, and assign a role to every user. This categorization enables the users of your application to only access functionalities that are relevant to them. *Roles* currently apply to the {{%link href="/en/cloud-scale/help/data-store/introduction/" %}}Data Store{{%/link%}} and the {{%link href="/en/cloud-scale/help/file-store/introduction/" %}}File Store{{%/link%}}. You can define the {{%link href="/en/cloud-scale/help/data-store/scopes-and-permissions/" %}}scopes and permissions{{%/link%}} of each table for each user role in the Data Store. These scopes and permissions also apply to {{%link href="/en/cloud-scale/help/search-integration/introduction/" %}}Search{{%/link%}} and {{%link href="/en/cloud-scale/help/zcql/introduction/" %}}ZCQL{{%/link%}} by extension, since these components are tied closely to the Data Store. Similarly, you can {{%link href="/en/cloud-scale/help/file-store/implementation/#set-permissions-for-a-folder" %}}define Folder access permissions{{%/link%}} for each role in the File Store. *Roles* is available as a section of the *User Management* feature in *Authentication*. Two system defined roles are present by default: 1. {{%badge%}}{{%bold%}}App Administrator{{%/bold%}}{{%/badge%}}: The users assigned to the {{%badge%}}App Administrator{{%/badge%}} role essentially have an admin access to the application by default. You can override this and define their access levels to the tables in the {{%link href="/en/cloud-scale/help/data-store/introduction/" %}}Data Store{{%/link%}} and to the folders in the {{%link href="/en/cloud-scale/help/file-store/introduction/" %}}File Store{{%/link%}}. 2. {{%badge%}}{{%bold%}}App User{{%/bold%}}{{%/badge%}}: The users assigned to the {{%badge%}}App User{{%/badge%}} role essentially have an end-user level access to the application by default. You can also override this and define their access levels in the {{%link href="/en/cloud-scale/help/data-store/introduction/" %}}Data Store{{%/link%}} and the {{%link href="/en/cloud-scale/help/file-store/introduction/" %}}File Store{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} * The {{%badge%}}App User{{%/badge%}} role is considered to be the default role. When you create a custom role and do not specify the scopes of the role it needs to follow, the scopes of the {{%badge%}}App User{{%/badge%}} role will apply to the custom role.{{%/note%}} In addition to these roles, you can create your own custom roles and define their permissions. You can also make these custom roles as {{%badge%}}Default{{%/badge%}} roles. When a user role is set as the **default role**, the users who are added to your application are assigned to that role automatically, and the permissions that have been set for that role are made available to them. <br /> -------------------------------------------------------------------------------- title: "Benefits" description: "User Management allows you to directly add end-users to your application and assign them custom roles" last_updated: "2026-03-18T07:41:08.542Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/user-management/roles/benefits/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Benefits * Roles enable you to group your application users based on the access levels and permissions given to them. * Roles help you to prevent unauthorized access to view or modify application data, and boost the resource and data security in your application. * You can configure scopes and grant specific permissions to actions like viewing a table's data, deleting rows from a table, or uploading files in specific folders in the {{%link href="/en/cloud-scale/help/data-store/introduction/" %}}Data Store{{%/link%}} and the {{%link href="/en/cloud-scale/help/file-store/introduction/" %}}File Store{{%/link%}} for custom roles. * They also enable you to control the data flow and the design of your application as per your needs. You can build your application by keeping in mind the multi-level access you can grant to various user groups. -------------------------------------------------------------------------------- title: "Implementation" description: "User Management allows you to directly add end-users to your application and assign them custom roles" last_updated: "2026-03-18T07:41:08.542Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/user-management/roles/implementation/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Implementation ### Create a New User Role When you create a new custom role in Catalyst, you must clone an existing role. This action will clone the set of permissions from the parent role to the new role. You can change the scopes and permissions of your custom role in the {{%link href="/en/getting-started/set-up-a-catalyst-project/profiles-and-permissions/" %}}Permissions{{%/link%}} section of {{%link href="/en/cloud-scale/help/data-store/introduction/" %}}Data Store{{%/link%}} and {{%link href="/en/cloud-scale/help/file-store/introduction/" %}}File Store{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} You will not be able to delete roles from Catalyst currently. The provision to delete roles will be rolled out soon.{{%/note%}} To create a new user role for your Catalyst application: 1. Click the **Roles** tab of the *User Management* section of *Authentication*. Click the **Add Roles** button. <br /> 2. Enter the name and description for the *Role*. <br /> 3. Choose an existing role to clone the scopes and permissions for your custom role from the drop-down selection of **Clone Role**. <br /> 4. You can enable the **Make as Default** toggle option if you want to ensure that when an end-user is added to your application, they will be automatically added to this role by default. Catalyst will automatically apply the permissions defined for this role to the new user. <br /> 5. Click **Add**. <br /> The role will now be displayed in the *Roles* section along with the unique *Role ID* generated by Catalyst, the description of the role, the details of the collaborator that created the role and the date and time the role was created on. ### Edit a Role You can edit the name, description, and choose if you wish to make the role a default role or not using the **Make as Default** toggle. To edit a role: 1. Click the **ellipsis icon** present at the corner of the role you wish to edit and select **Edit**. <br /> 2. Make the required changes and click **Update**. <br /> ### Delete a Role The following points need to be taken note of before you opt to delete a role: * While you can edit a system defined role—{{%badge%}}App Administrator{{%/badge%}} and {{%badge%}}App User{{%/badge%}}, you cannot delete them. * You cannot delete a {{%badge%}}Default{{%/badge%}} role. To delete a role that is marked as {{%badge%}}Default{{%/badge%}}, you need to make another role as {{%badge%}}Default{{%/badge%}} before attempting to delete the intended role. * Before deleting a role you need to transfer its users to a new or a different existing role. To delete a role: 1. Click the **ellipsis icon** present at the corner of the role you wish to delete and select **Delete**. <br /> 2. Transfer the users of the role that you are going to delete to a different role. You can do so by choosing the role from the drop-down. <br /> {{%note%}}{{%bold%}}Info:{{%/bold%}} If there are more roles in the {{%link href="/en/deployment-and-billing/environments/development-environment/" %}}development environment{{%/link%}} than in the {{%link href="/en/deployment-and-billing/environments/production-environment/" %}}production environment{{%/link%}}, and if you choose to migrate your project back to development from production, then: * The additional roles present in the development environment will be automatically deleted. * The users mapped to these roles will be mapped to the {{%badge%}}Default{{%/badge%}} role as listed in the production environment.{{%/note%}} 3. Click **Yes, Delete** to delete the role. <br /> You will get a console notification notifying you that the required role has been deleted and its users have been successfully transfered to the Trasfer Role you selected. <br /> <br /> ### Users -------------------------------------------------------------------------------- title: "Introduction" description: "User Management allows you to directly add end-users to your application and assign them custom roles" last_updated: "2026-03-18T07:41:08.543Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/user-management/users/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Users ### Introduction It's important to remember the following details to implement and utilize the Users section effectively: * {{%badge%}}{{%bold%}}ZUID{{%/bold%}}{{%/badge%}}: {{%badge%}}ZUID{{%/badge%}} is the unique identification of a Zoho user account for individual application. It is automatically created for an end-user when they sign-up for your application. * {{%badge%}}{{%bold%}}UserID{{%/bold%}}{{%/badge%}}: {{%badge%}}UserID{{%/badge%}} is the unique identification of an end-user, limited to Catalyst alone and not applicable to other Zoho services. This is also automatically created for an end-user when they sign up for your application. * {{%badge%}}{{%bold%}}Org ID{{%/bold%}}{{%/badge%}}: {{%badge%}}Org ID{{%/badge%}} is the unique identification of the organization that an end-user belongs to. This identification is generated when the end-user is added through the {{%link href="/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser" %}}Add User API{{%/link%}} or through the {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#adding-a-new-user-from-the-console" %}}Add User{{%/link%}} button in the console. If the Org ID is not specified while adding the user, Catalyst will automatically generate a unique Org ID for that particular user. {{%note%}}{{%bold%}}Note:{{%/bold%}}The organization of a user cannot be changed later, once it is associated with their account.{{%/note%}} * An end-user can sign up to any number of Catalyst applications; a unique ZUID and Org ID will be created each time for that user. However, this could also cause inconvenience for the user, as they would have to sign in every time they switch to a different Catalyst application. To prevent this, if you implement a {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/introduction/" %}}Native Catalyst Authentication type{{%/link%}} in all of your Catalyst applications, you can easily set up {{%link href= "/en/cloud-scale/help/authentication/social-logins/introduction/" %}}Social Logins{{%/link%}} that will allow users to sign up to all your applications using credentials of trusted Identity Providers (IdPs). {{%note%}}{{%bold%}}Note:{{%/bold%}} Catalyst's {{%link href="/en/api/introduction/multi-org-support/#Multi-OrgSupport" %}}Multi-Org feature{{%/link%}} enables a Catalyst developer to be a part of multiple organizations, while registered with one Catalyst account. This means that if a user or a {{%link href="/en/getting-started/set-up-a-catalyst-project/collaborators/"%}}collaborator{{%/link%}} signs up for more than one Catalyst organization, they are assigned a different Org IDs under one ZUID for each application.{{%/note%}} <br /> -------------------------------------------------------------------------------- title: "Benefits" description: "User Management allows you to directly add end-users to your application and assign them custom roles" last_updated: "2026-03-18T07:41:08.543Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/user-management/users/benefits/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Benefits * Authentication provides an integrated space to manage application users and handle all end-user activities. The provision to handle user accounts directly from the Catalyst console, rather than creating additional solutions for it, is highly helpful and time saving. * Even if you have included a provision for users to create an account or reset their password from inside your application, you can still perform these activities quickly from the console for your convenience. * You can easily manage applications created for internal usage by your organization's members, or that are made accessible by request only using Authentication. * You can create custom user roles for your end-users, and provide them with more specific permissions. <br /> -------------------------------------------------------------------------------- title: "Implementation" description: "User Management allows you to directly add end-users to your application and assign them custom roles" last_updated: "2026-03-18T07:41:08.543Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/user-management/users/implementation/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Implementation ### Adding a New User From The Console 1. Navigate to the *User Management* section of **Cloud Scale > Authentication** and click **Add User** in the *Users* section. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} To add end-users to your application, you must first enable at least one of the {{%link href="/en/cloud-scale/help/authentication/introduction/" %}}authentication types{{%/link%}}.{{%/note%}} 2. Enter the **First Name**, **Last Name**, **Email ID** of the user. Select the **Role** or the user from the *Roles* drop-down list in the pop-up window. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} You can find out more about {{%italics%}}Roles{{%/italics%}} from this {{%link href="/en/cloud-scale/help/authentication/user-management/roles/implementation/" %}}help section{{%/link%}}{{%/note%}} 3. If you wish to add the user under a particular organization, enter the Org ID. If you do not enter one, Catalyst will generate a unique organization ID for the user. <br /> 4. Select the platform of the application that you are inviting the user to access. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} Specifying the platform does not prevent the user from accessing other platforms of the application. However, it defines the primary platform that the user will access from their device and sets default values for opening the application in the appropriate medium.{{%/note%}} If you select {{%bold%}}Andorid{{%/bold%}} or {{%bold%}}iOS{{%/bold%}} as the platforms, you can type in the redirect URL. <br /> 5. You can use the default homepage that you have specified in your web app's {{%link href="/en/cli/v1/project-directory-structure/catalyst-json/" %}}{{%badge%}}client-package.json{{%/badge%}}{{%/link%}} file as the redirect URL by checking the {{%bold%}}Use Default Redirect URL{{%/bold%}} checkbox. To use a different redirect URL, type the URL in the textbox. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} Specifying the platform does not prevent the user from accessing other platforms of the application. However, it defines the primary platform that the user will access from their device and sets default values for opening the application in the appropriate medium.{{%/note%}} 6. Click {{%bold%}}Create{{%/bold%}}. <br /> The user will now be listed in the *Users* section along with their details. You can search for a particular user by their email address using the search bar. The *Users* section lists all users, including those who have signed up from inside the application. Click **Invite User** to add more users. When a new user is invited, Catalyst will send an automated email to their email address with a URL to set up their password. The content and design of this email template can be configured using the {{%link href="/en/cloud-scale/help/authentication/email-templates/introduction/" %}}Email Template{{%/link%}} feature of Authentication. When the user clicks on the link, they will be authenticated and redirected to a page that requests them to set their password. <br /> Once the user completes the process, they are redirected to the redirect URL that you specified while inviting the user. ### Enable or Disable a User You can enable or disable a user of your application as you need. When a user is disabled for an application, they will no longer be able to login to the application until you enable them again. To enable or disable a user, click the toggle switch in the *Status* column of that user. <br /> ### Reset a User's Password You can easily reset a user's password by sending them a Password Reset email from the Catalyst console. The email will contain a password reset link, which the user can click to create a new password for the application. The Password Reset email can be designed per your preference using the {{%link href="/en/cloud-scale/help/authentication/email-templates/introduction/" %}}Email Template{{%/link%}} feature of Authentication. If you are implementing {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}Hosted Authentication Type{{%/link%}}, you also have the option of designing the Password Reset page of your application directly in the console. {{%note%}}{{%bold%}}Note:{{%/bold%}} The password will be reset for all platforms, irrespective of the platform you choose. Specifying the platform sets default values for opening the application in the appropriate medium.{{%/note%}} To let user reset their password: 1. Click the ellipsis icon at the corner of the particular user, and click **Reset Password**. <br /> 2. Select the platform of the application for which the password is to be reset in the *Redirect Details* <br /> 3. Click **Reset**. <br /> This will automatically send a password reset email to the user's email address for the application platform that you have chosen. When the user clicks on the link, they will be redirected to the Password Reset page of your application where they can create a new password for their account. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can also send a password reset email using {{%link href="/en/sdk/java/v1/cloud-scale/authentication/reset-password/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/reset-password/" %}}Node.JS{{%/link%}}, {{%link href="/en/sdk/python/v1/cloud-scale/authentication/reset-password/" %}}Python{{%/link%}}, {{%link href="/en/sdk/web/v4/cloud-scale/authentication/reset-password/" %}}Web{{%/link%}} SDKs, or the {{%link href="/en/api/code-reference/cloud-scale/authentication/reset-user-password/#ResetUserPassword" %}}API{{%/link%}}.{{%/note%}} ### Modify a User's Details You can modify and update a user's name or the role that they were assigned to. However, you will not be able to change a user's registered *email address*, *Org ID*, or *User ID*. To modify user information in your application: 1. Click the **ellipsis icon** of the user whose information you wish to modify and select **Edit**. <br /> 2. Make any necessary changes in the pop-up widow and click **Update**. <br /> ### Delete a User You can permanently delete a user from logging in to your application. The user will need to re-register in your application if they want to use it again. To delete a user account from your application: 1. Click the **ellipsis icon** for the user you wish to delete and select **Delete**. <br /> 2. Click **Yes, Proceed** in the confirmation window. <br /> <br /> ## Whitelisting -------------------------------------------------------------------------------- title: "Introduction" description: "Whitelisting enables you to vlaidate through Custom User Validation and permit CORS and iFrame access." last_updated: "2026-03-18T07:41:08.544Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/whitelisting/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Whitelisting ### Introduction Whitelisting is a feature of Cloud Scale Authentication that enables you to validate and manage various aspects of access to your Catalyst application. These include the following: * Validating end-users' signup using custom {{%link href="/en/serverless/help/functions/basic-io" %}}basic I/O functions{{%/link%}} through {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction" %}}Custom User Validation{{%/link%}}. * Authorizing domains for {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction" %}}CORS and iFrame access{{%/link%}} to your application. The {{%italics%}}Whitelisting{{%/italics%}} feature ensures ready-to-implement high security for your application by enabling you to clearly specify and authorize domains that can access your application's endpoints through CORS requests or load your application widget. Likewise, security is ensured by controlling the access to your application to specific users that you require through custom user validation. {{%note%}}{{%bold%}}Note:{{%/bold%}} You can access this section during the authentication setup in the final step, or directly from the Whitelisting section in the console. In the latter case, you should have already configured at least one {{%link href="/en/cloud-scale/help/authentication/authentication-types" %}}authentication types{{%/link%}}.{{%/note%}} ### Benefits * Catalyst makes your application development process significantly easier, as you need not manually code your application to allow {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction/#cors" %}}CORS{{%/link%}} requests or {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction/#iframe" %}}iFrame{{%/link%}} access for each domain that you require. You don't need to configure custom responses in your functions for specific domains to access your application resources, or code the logic of loading your application as a widget in an external domain. * You can simply add a domain in the Catalyst console and enable or disable CORS and iFrame whenever you need, with the click of a button. Similarly, you can {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/implementation/#disable-custom-user-validation" %}}enable or disable Custom User Validation{{%/link%}} for your application through a single toggle switch, and use custom logic to validate your end-users. ### Authorized Domains -------------------------------------------------------------------------------- title: "Introduction" description: "Custom User Validation allows you validate user sign ups using custom logic" last_updated: "2026-03-18T07:41:08.544Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # CORS and iFrame Catalyst Cloud Scale provides you the convenience of easily configuring the following two functionalities for your application from the console: <br /> ### CORS {{%bold%}}Cross-Origin Resource Sharing{{%/bold%}} (CORS) is a mechanism that instructs a browser to allow web applications running on one origin to access resources from a different origin. Unless you specifically enable CORS, browsers prevent client-side scripts from accessing resources from a different origin by default. This is done by implementing a security mechanism called a same-origin policy, to protect the resources. When a web application requires a resource on a different domain to be accessed, it will execute a cross-origin request by including additional HTTP headers in the request, to inform the browser about it. When you enable CORS for an external domain in your Catalyst application, browsers will process HTTP requests from that particular domain and pass it on to Catalyst servers. Catalyst will then allow access to the client and all the function endpoints of your application, and send appropriate responses back. Catalyst ensures secure data transfers through cross-origin requests, by enabling you to specify and manage the domains that can be allowed to access the application endpoints in the console. ### iFrame Catalyst also enables you to easily allow your application to be incorporated as a widget in an external domain, similar to allowing CORS. To load your application as a widget in a target website, you must code a script for it in your application's source files. Once that's done, you can embed your application as a widget on the target website by incorporating the widget script in the target's code. If you choose to embed your application widget in the form of an iFrame, you can utilize Catalyst's convenient functionality. By default, browsers do not allow iFrame elements from one domain to be loaded in a different domain, as they violate standard content security policies, unless specific access is given. However, using Catalyst, you don't need to build the logic involved in granting permissions to allow an external widget. You can easily enable the iFrame of your application widget for a domain in the console. Catalyst servers will then handle the communication with the browsers. The server informs the browser about the configured domains that can allow your application widget to be incorporated in them. -------------------------------------------------------------------------------- title: "Implementation" description: "Custom User Validation allows you validate user sign ups using custom logic" last_updated: "2026-03-18T07:41:08.544Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/whitelisting/authorized-domains/implementation/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Implementation To access the {{%italics%}}Whitelisting{{%/italics%}} section you have to configure at least one of the {{%link href="/en/cloud-scale/help/authentication/authentication-types/" %}}authentication types{{%/link%}}: {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}Hosted{{%/link%}}, {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/introduction/" %}}Embedded{{%/link%}}, or {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/" %}}Third-party{{%/link%}}. You can access *Authorized Domains* in the whitelisting section any time by navigating to **Cloud Scale > Authentication** in the console, and clicking the **Whitelisting** option. <br /> You can also access {{%italics%}}Authorized Domains{{%/italics%}} in the *Additional Settings* section during the last step of all the authentication setups. <br /> ### To Enable CORS and iFrame Similar to {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/implementation/" %}}Custom User Validation{{%/link%}}, Authorized Domains is also disabled by default. To authorize domains and enable CORS and iFrame access: 1. Click **Add Domain** under the *Authorized Domain* section. <br /> 2. Enter the name of the domain name, and authorize the domain to have CORS and or iFrame access by enabling the respective options, as per your preference. <br /> 3. Click **Configure** to complete set up. The authorized domain along with the enabled status of CORS and iFrame access to your application will be displayed. <br /> You can authorize and add more domains by clicking **Add Domain** and repeating the above mentioned steps. <br /> ### To Modify Domain Name or Update CORS and iFrame Access to Your Application You can modify a domain name or reconfigure its CORS and iFrame access to your application in the following way: 1. Click the **ellipsis icon** next to the domain you wish to change, and click **Edit**. <br /> 2. You can update the domain name, and enable or disable CORS and iFrame access as per your preference in the pop-up window. Click **Update** to confirm the update. <br /> You can now view the updated information of the domain in the **Authorized Domains** section. <br /> ### To Delete an Authorized Domain You can permanently delete a domain that you authorized in the following way: 1. Click the **ellipsis icon** next to the domain you wish to delete, and click **Delete**. <br /> 2. Click **Yes, Proceed** in the confirmation pop-up. <br /> The domain will be deleted. <br /> ### Custom User Validation -------------------------------------------------------------------------------- title: "Introduction" description: "Custom User Validation allows you validate user sign ups using custom logic" last_updated: "2026-03-18T07:41:08.544Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Custom User Validation Catalyst offers you the option to validate and authorize end-users to your application using custom functions. This option allows you configure a {{%link href="/en/serverless/help/functions/basic-io" %}}Catalyst Basic I/O function{{%/link%}} to contain the logic of the manner you wish to authorize the user with. During user sign up, the credentials of the user will be validated through this Basic I/O function. {{%note%}}{{%bold%}}Note:{{%/bold%}} To enable {{%bold%}}Custom User Validation{{%/bold%}}, you must first ensure that {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup{{%/link%}} has been enabled.{{%/note%}} Refer the code snippets below a sample Custom User Validation function in Java, Node.js, and Python: {{%tabs%}} {{%tab "Java" %}} {{% panel_with_adjustment header="Custom User Validation - Java" footer="button" class="language-java line-numbers" scroll="set-scroll" %}}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) { /*Validation logic starts */ LOGGER.info("Inside null check"); ZCSignupUserValidationResponse validationResponse = ZCSignupUserValidationResponse.getInstance(); if (requestDetails.getUserDetails().getEmailId().contains("@notallowedmail")) { validationResponse.setStatus(ZCSignupValidationStatus.FAILURE); // The user has failed authentication } else { validationResponse.setStatus(ZCSignupValidationStatus.SUCCESS); // The actions that occur in the event of a successful authentication can be customized ZCSignupResponseUserDetails respUserDetails = ZCSignupResponseUserDetails.getInstance(); respUserDetails.setFirstName("{customFirstName}"); respUserDetails.setLastName("{customLastname}"); respUserDetails.setRoleIdentifier("{customRoleName}"); respUserDetails.setOrgId("{customOrgId}"); validationResponse.setUserDetails(respUserDetails); } basicIO.write(validationResponse); /* Validation logic ends*/ } } catch (Exception e) { basicIO.write(e); LOGGER.log(Level.SEVERE, "Exception in MainClass", e); basicIO.setStatus(500); } } } {{% /panel_with_adjustment %}} {{%/tab%}} {{%tab "Node.js" %}} {{% panel_with_adjustment header="Custom User Validation - Node.js" footer="button" class="language-javascript line-numbers" scroll="set-scroll" %}}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", //If you are providing the Org ID, make sure it is copied exactly from the console. }, }) ); } } context.close(); }; {{%/panel_with_adjustment%}} {{%/tab%}} {{%tab "Python" %}} {{% panel_with_adjustment header="Custom User Validation - Python" footer="button" class="language-python line-numbers" scroll="set-scroll" %}}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, # If you are providing the Org ID, make sure it is copied exactly from the console. }, } ) ) context.close() {{%/panel_with_adjustment%}} {{%/tab%}} {{%/tabs%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} These snippets are also available in the Catalyst {{%link href="/en/sdk/java/v1/cloud-scale/authentication/custom-user-validation/" %}}Java SDK{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/custom-user-validation/" %}}Node.js SDK{{%/link%}}, and {{%link href="/en/sdk/python/v1/cloud-scale/authentication/custom-user-validation/" %}}Python SDK{{%/link%}} repositories.{{%/note%}} -------------------------------------------------------------------------------- title: "How It Works" description: "Custom User Validation allows you validate user sign ups using custom logic" last_updated: "2026-03-18T07:41:08.544Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/how-it-works/" service: "Cloud Scale" -------------------------------------------------------------------------------- # How Custom User Validation Works The following steps detail how you can use custom logic to authenticate end-user sign ups: {{%note%}}{{%bold%}}Note:{{%/bold%}} {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup{{%/link%}} must be enabled to use Custom User Validation.{{%/note%}} 1. When an end-user signs up to your application using the Sign Up action configured by you, the Catalyst server will check if {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction" %}}Custom User Validation{{%/link%}} has been enabled. If it has been enabled, then the {{%link href="/en/serverless/help/functions/basic-io" %}}Basic I/O function{{%/link%}} that you have used to engineer the validation logic will be called and the user details will be passed to the validation function as a {{%badge%}}.JSON{{%/badge%}} object. {{%code class="language-json line-numbers"%}}{ "request_type": "add_user", "request_details": { "user_details": { "email_id": "emmy@zylker.com", "first_name": "Emma", "last_name": "Thompson", "org_id": "43************", "role_details": { "role_name": "App User", "role_id": "10********" } }, "auth_type": "web" } } {{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} * Custom User Validation only applies for sign up action, i.e., when the user tries to access your Catalyst application for the very first time. * If you wish to alter any one of the input details for validation, the input to the function has to be sent as the complete .JSON object. {{%/note%}} 2. If the user's authentication in successful based on the custom logic coded by you, then the user will be able to access the application, and the details of this user can be viewed and managed in the {{%link href="/en/cloud-scale/help/authentication/user-management/introduction" %}}{{%italics%}}User Management{{%/italics%}}{{%/link%}} section. 3. If the end-user's details do not meet the authentication requirements you coded, then they will not be able to access the application. -------------------------------------------------------------------------------- title: "Implementation" description: "Custom User Validation allows you validate user sign ups using custom logic" last_updated: "2026-03-18T07:41:08.544Z" source: "https://docs.catalyst.zoho.com/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/implementation/" service: "Cloud Scale" -------------------------------------------------------------------------------- # Implementation To use the {{%italics%}}Whitelisting{{%/italics%}} section you have to configure at least one authentication type: {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/hosted-authentication-type/introduction/" %}}Hosted Authentication Type{{%/link%}}, {{%link href="/en/cloud-scale/help/authentication/native-catalyst-authentication/embedded-authentication/introduction/" %}}Embedded Authentication Type{{%/link%}}, or {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/" %}}Third-party Authentication Type{{%/link%}}. You can access the {{%italics%}}Whitelisting{{%/italics%}} by navigating to {{%bold%}}Cloud Scale > Authentication{{%/bold%}} in the console, and clicking the {{%bold%}}Whitelisting{{%/bold%}} option. <br /> Custom User Validation enables you to validate your end-users using a custom logic as defined by you in a {{%link href="/en/serverless/help/functions/basic-io" %}}Basic I/O function{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} * {{%link href="/en/cloud-scale/help/authentication/public-signup" %}}Public Signup{{%/link%}}must be enabled to use Custom User Validation * The custom validation function must already be coded as a Basic I/O, in {{%link href="/en/sdk/java/v1/cloud-scale/authentication/custom-user-validation/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/custom-user-validation/" %}}Node.js{{%/link%}}, or {{%link href="/en/sdk/python/v1/cloud-scale/authentication/custom-user-validation/" %}}Python{{%/link%}} and present in the Catalyst console in {{%link href="/en/serverless/help/functions/introduction/" %}}Serverless Functions{{%/link%}}{{%/note%}} Custom User Validation will be **disabled** by default, and you have the option of configuring it in two ways: {{%note%}}{{%bold%}}Note:{{%/bold%}} You can also enable Custom User Validation in the *Additional Settings* section during the last step of all the authentication setups. <br /> {{%/note%}} ### Enable Custom User Validation 1. Click the **toggle button** present next to the **Custom User Validation** option in the *Whitelisting* section. <br /> {{%note%}}{{%bold%}}Note:{{%/bold%}} {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup{{%/link%}} must be enabled to use Custom User Validation. As mentioned earlier, you can enable while setting up an authentication type using the {{%italics%}}Addional Settings{{%/italics%}} section.{{%/note%}} 2. Select the {{%link href="/en/serverless/help/functions/basic-io/" %}}Basic I/O function{{%/link%}} that contains your custom logic from the dropdown. <br /> 3. You can click **JSON Validation** button to view and copy the sample JSON input to test the function. You can test this input with a sample function available in the respective {{%link href="/en/#DeveloperTools" %}}SDK sections{{%/link%}} of each stack, or with your own custom logic. <br /> 4. Click **Configure** to finish enabling Custom User Validation. <br /> ### Disable Custom User Validation You can disable the *Custom User Validation* option if you no longer wish to validate user sign ups using a custom logic, by simply clicking the toggle button to disable *Custom User Validation*. <br /> Custom User Validation will be disabled, and can be re-enabled again at any time. {{%note%}}{{%bold%}}Note:{{%/bold%}} Custom User Validation will automatically be disabled for your application if you disable {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup{{%/link%}}.{{%/note%}} --- ## API Reference — Authentication -------------------------------------------------------------------------------- title: "Add New User" description: "This API enables you to add a new end-user to a Catalyst application for a specific platform through Catalyst Authentication" last_updated: "2026-03-18T07:41:08.549Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/authentication/add-new-user/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/authentication/add-new-user/" id="AddNewUser" %}} {{%divtag class="LeftContent"%}} # Authentication {{%link href="/en/cloud-scale/help/authentication/introduction"%}}Catalyst Authentication{{%/link%}} features enable you to add end-users to your Catalyst serverless applications, configure their user accounts and roles, and manage user sign-in and authentication of your application. # Add a New User ### Description This API enables you to add a new end-user to the Catalyst application for a specific platform. When the user has signed up, unique identification values such as {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}{{%badge%}}**ZUID**{{%/badge%}}, {{%badge%}}**userID**{{%/badge%}}{{%/link%}} are created for them. {{%note%}}{{%bold class="bold-primary"%}}Note:{{%/bold%}} You will be able to add only 25 users in your application in the {{%link href="/en/deployment-and-billing/environments/introduction"%}}development environment{{%/link%}}. After you deploy your application to production, you can include any number of end-users in it.{{%/note%}} ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain}/baas/v1/project/{project_id}/project-user/signup</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%bold%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.projects.users.CREATE {{%/scope%}} <br/> #### Request JSON Properties {{% nested_fields children="open" border="yes" expandable="no" title="platform_type" textformat="string" condition="mandatory" maxlength=" " %}} Accepted values: {{%badge%}}web{{%/badge%}}, {{%badge%}}android{{%/badge%}}, {{%badge%}}ios{{%/badge%}} {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="redirect_url" textformat="string" condition="optional" maxlength="" %}} The URL to be redirected to, after the user signs up for the application <br> Max Size: 200 {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="yes" title="user_details" textformat="json" condition="mandatory" maxlength=" " %}} The JSON that contains the details of the user {{% nested_button%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="first_name" textformat="string" condition="mandatory" maxlength="" %}}First name of the user <br> Max Size: 100{{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="last_name" textformat="string" condition="optional" maxlength="" %}}Last name of the user <br> Max Size: 100{{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="email_id" textformat="string" condition="mandatory" maxlength="" %}}Email address of the user{{% /nested_fields %}} {{%/request_id%}} {{% /nested_fields %}} ### Response Details The response will contain the details of the user added in the {{%badge%}}data{{%/badge%}} key, including the metadata and identification values such as {{%badge%}}zaid{{%/badge%}}, {{%badge%}}user_id{{%/badge%}}, and {{%badge%}}org_id{{%/badge%}} that were generated. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash" %}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/3000000002001/project-user/signup \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*16.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" \ -H "Content-Type: application/json" \ -H "PROJECT_ID: 1010309726" \ -d '{ "user_details":{ "first_name":"Rowena", "last_name":"Simmons", "email_id":"r.simmons@zylker.com" }, "platform_type":"web", "redirect_url":"https://logistics.zylker.com/app/index.html" }' {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "zaid": 1010309726, "user_details": { "user_id": 671930455, "user_type": "App Administrator", "zuid": 3000000006001, "zaaid": 1011520995, "status": "ACTIVE", "is_confirmed": true, "email_id": "r.simmons@zylker.com", "first_name": "Rowena", "last_name": "Simmons", "created_time": "May 13, 2019 09:16 PM", "modified_time": "May 13, 2019 09:16 PM", "invited_time": "May 13, 2019 09:16 PM", "role_details": { "role_id": 1256000000288012, "role_name": "App Administrator" } }, "redirect_url": "https://logistics.zylker.com/app/index.html", "platform_type": "web", "org_id": 1011520995 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" } }{{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdk_docs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/authentication/add-new-user"%}}Add New User- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/add-new-user"%}}Add New User- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/cloud-scale/authentication/add-new-user"%}}Add New User- Python SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/web/v4/cloud-scale/authentication/add-new-user"%}}Add New User- Web SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Add a New User to an Existing Organization" description: "This API enables you to add a new end-user to an existing organization without creating a new organization for them through Catalyst Authentication." last_updated: "2026-03-18T07:41:08.549Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/authentication/add-user-to-existing-org/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/authentication/add-user-to-existing-org/" id="AddaNewUsertoanExistingOrganization" %}} <!-- Leftcontent --> {{%divtag class="LeftContent"%}} # Add a New User to an Exsiting Organization ### Description This API enables you to add a new end-user to an existing organization without creating a new organization for them. This can be done by providing the {{%badge%}}{{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}**ZAAID**{{%/link%}}{{%/badge%}} of the organization that the user must be added to. The organization of a user cannot be changed later, once it is associated with their account. When the user has signed up, unique identification values such as {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}{{%badge%}}ZUID{{%/badge%}} and {{%badge%}}User ID{{%/badge%}}{{%/link%}} are created for them. ### Request Details #### Request URL <!-- shortcode 1 --> {{%request class="apiyellow" req="POST" %}}<p>{api-domain}/baas/v1/project/{project_id}/project-user</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} <br> #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token} <br> {{%bold class="bold-primary"%}}Content-Type:{{%/bold%}} application/json <br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.projects.users.CREATE {{%/scope%}} #### Request JSON Properties {{% nested_fields children="open" border="yes" expandable="no" title="platform_type" textformat="string" condition="mandatory" maxlength=" " %}} Accepted values: {{%badge%}}web{{%/badge%}}, {{%badge%}}android{{%/badge%}}, {{%badge%}}ios{{%/badge%}} {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="redirect_url" textformat="string" condition="optional" maxlength="" %}} The URL to be redirected to, after the user signs up for the application <br> Max Size: 200 {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="yes" title="user_details" textformat="json" condition="mandatory" maxlength=" " %}} The JSON that contains the details of the user {{% nested_button%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="first_name" textformat="string" condition="optional" maxlength="" %}}First name of the user <br> Max Size: 100{{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="last_name" textformat="string" condition="mandatory" maxlength="" %}}Last name of the user <br> Max Size: 100{{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="email_id" textformat="string" condition="mandatory" maxlength="" %}}Email address of the user{{% /nested_fields %}} {{%/request_id%}} {{%request_id%}}{{% nested_fields children="open" border="no" expandable="no" title="ZAAID" textformat="string" condition="mandatory" maxlength="" %}}Unique identification of the organization that the user belongs to{{% /nested_fields %}} {{%/request_id%}} {{% /nested_fields %}} ### Response Details The response will contain the details of the user added in the {{%badge%}}data{{%/badge%}} key, including the metadata and identification values such as {{%badge%}}zaid{{%/badge%}}, {{%badge%}}user_id{{%/badge%}}, and {{%badge%}}org_id{{%/badge%}} that were generated. <!-- shortcode 1 ends --> {{%/divtag%}} <!-- Rightcontent --> {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash"%}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/3000000002001/project-user \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*16.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" \ -H "Content-Type: application/json" \ -d '{ "user_details":{ "first_name":"John", "last_name":"Winchester", "email_id":"john.w@zylker.com", "zaaid":4567899 }, "redirect_url": "https://logistics.zylker.com/app/index.html", "platform_type":"web" }' {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "zaid": 1011481670, "user_details": { "user_id": 671930400, "user_type": "App User", "zuid": 3000000006001, "zaaid": 1011520995, "status": "ACTIVE", "is_confirmed": true, "email_id": "john.w@zylker.com", "first_name": "John", "last_name": "Winchester", "created_time": "May 13, 2019 09:16 PM", "modified_time": "May 13, 2019 09:16 PM", "invited_time": "May 13, 2019 09:16 PM", "role_id": 3000000005015 }, "redirect_url": "https://logistics.zylker.com/app/index.html", "platform_type": "web", "org_id": 1011520995 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" } }{{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdkdocs" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/authentication/add-new-user-to-existing-org/"%}}Add New User to Existing Org- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/add-new-user-to-existing-org/"%}}Add New User to Existing Org- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/cloud-scale/authentication/add-new-user-to-existing-org/"%}}Add New User to Existing Org- Python SDK{{%/link%}}<br/><br/> {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Get Current User" description: "This API enables you to fetch the details of the current user logged into the Catalyst application, on whose scope the function is being executed through Catalyst Authentication." last_updated: "2026-03-18T07:41:08.549Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/authentication/get-current-user/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/authentication/get-current-user/" id="GetCurrentUser" %}} {{%divtag class="LeftContent"%}} # Get the Details of the Current User ### Description This API enables you to fetch the details of the current {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}user{{%/link%}} logged into the Catalyst application, on whose scope the function is being executed. ### Request Details #### Request URL {{%request class="apigreen" req="GET" %}}<p>{api-domain}/baas/v1/project/{project_id}/project-user/current</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} <br> #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token}<br> {{%/scope%}} <br> **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.projects.users.READ {{%/scope%}} <br /> {{%note%}} {{%bold class="bold-primary"%}}Note:{{%/bold%}} This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. However, the user can only obtain their own user details. Refer to the [Catalyst API Prerequisites section](/en/api/introduction/overview-and-prerequisites/#prerequisites) for details.{{%/note%}} ### Response Details The response will contain the details of the current user including their identification values such as {{%badge%}}zaid{{%/badge%}}, {{%badge%}}user_id{{%/badge%}}, {{%badge%}}email_id{{%/badge%}}, and their role details. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash"%}}curl -X GET \ https://api.catalyst.zoho.com/baas/v1/project/3000000005007/project-user/current \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*6.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "zuid": 3000000006111, "zaaid": 1019540153, "status": "ACTIVE", "user_id": 671930409, "user_type": "App Administrator", "is_confirmed": true, "email_id": "p.boyle@zylker.com", "first_name": "Patricia", "last_name": "Boyle", "created_time": "Jul 09, 2019 04:11 PM", "modified_time": "Jul 09, 2019 04:11 PM", "invited_time": "Jul 09, 2019 04:11 PM", "role_details": { "role_id": 3000000005090, "role_name": "App Administrator" } "org_id":1019540153 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" } }{{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdkdocs-getcurrentuser" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/authentication/get-user-details/"%}}Get User Details- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/get-user-details/"%}}Get User Details- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-user-details/"%}}Get User Details- Python SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/web/v4/cloud-scale/authentication/get-user-details/"%}}Get User Details- Web SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Get Specific User" description: "This API enables you to obtain the details of a specific Catalyst application user through Catalyst Authentication" last_updated: "2026-03-18T07:41:08.550Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/authentication/get-specific-user/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/authentication/get-specific-user/" id="GetSpecificUser" %}} {{%divtag class="LeftContent"%}} # Get the Details of a Specific User ### Description This API enables you to obtain the details of a specific {{%link href="/en/cloud-scale/help/authentication/user-management/introduction/"%}}Catalyst application user{{%/link%}}, by passing their {{%badge%}}user_ID{{%/badge%}} in the request. ### Request Details #### Request URL {{%request class="apigreen" req="GET" %}}<p>{api-domain}/baas/v1/project/{project_id}/project-user/{user_id}</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="user_id" data="Numerical" %}}The {{%link href="/en/cloud-scale/help/authentication/user-management/introduction/"%}}unique ID{{%/link%}} of the user{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token}<br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.projects.users.READ {{%/scope%}} ### Response Details The response will contain the details of the specific user including their identification values such as {{%badge%}}zuid{{%/badge%}}, {{%badge%}}user_id{{%/badge%}}, {{%badge%}}email_id{{%/badge%}}, and their role details. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash"%}}curl -X GET \ https://api.catalyst.zoho.com/baas/v1/project/3000000005007/project-user/671930409 \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*16.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "zuid": 3171930400, "zaaid": 1019540153, "status": "ACTIVE", "user_id": 671930409, "user_type": "App User", "is_confirmed": true, "email_id": "john.w@zylker.com", "first_name": "John", "last_name": "Winchester", "created_time": "Jul 09, 2019 04:11 PM", "modified_time": "Jul 09, 2019 04:11 PM", "invited_time": "Jul 09, 2019 04:11 PM", "role_details": { "role_id": 3000000005015, "role_name": "App User" } "org_id":1019540153 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" } }{{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdkdocs-specific-user" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/authentication/get-user-details/#get-user-details-by-user-id"%}}Get User Details- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/get-user-details/#get-user-details-by-user-id"%}}Get User Details- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-user-details/#get-user-details-by-user-id"%}}Get User Details- Python SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/web/v4/cloud-scale/authentication/get-user-details/#get-user-details-by-id"%}}Get User Details- Web SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Get All Users" description: "This API enables you to fetch the details of all Catalyst applications users of a particular application through Catalyst Authentication." last_updated: "2026-03-18T07:41:08.550Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/authentication/get-all-users/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/authentication/get-all-users/" id="GetAllUsers" %}} {{%divtag class="LeftContent"%}} # Get the Details of All Users ### Description This API enables you to fetch the details of all {{%link href="/en/cloud-scale/help/authentication/user-management/introduction/"%}}Catalyst applications users{{%/link%}} of a particular application through Pagination. **Pagination** allows you to retrieve the user list in pages through an iteration of API calls. For example, if you require user records to be fetched in batches of 200 as individual pages, you must include a {{%badge%}}start{{%/badge%}} and an {{%badge%}}end{{%/badge%}} parameter in your request. You can set the start index as 0 using the {{%badge%}}start{{%/badge%}} parameter, and specify the maximum number of users to be fetched as 200 using the {{%badge%}}end{{%/badge%}} parameter. To fetch the next set of user records, you can execute another API call by setting the {{%badge%}}start{{%/badge%}} index as 200, and specifying the number of user records in that page using the {{%badge%}}end{{%/badge%}} parameter accordingly. ### Request Details #### Request URL {{%request class="apigreen" req="GET" %}}<p>{api-domain}/baas/v1/project/{project_id}/project-user?start={start_index}&end={number_of_users}</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="start" data="Numerical" %}} <p>The start index to fetch the user records from </p>{{%/request_id%}} {{%request_id id="end" data="Numerical" %}}<p> Number of user records to return in a single page through pagination </p>{{%/request_id%}} #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token}<br> {{%/scope%}} **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.projects.users.READ {{%/scope%}} ### Response Details The response will contain the details of all application users including their identification values such as {{%badge%}}zuid{{%/badge%}}, {{%badge%}}user_id{{%/badge%}}, {{%badge%}}email_id{{%/badge%}}, and their role details. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash"%}}curl -X GET \ https://api.catalyst.zoho.com/baas/v1/project/3000000005007/project-user?start=100&end=3 \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*16.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" {{% /panel_without_adjustment %}} {{% panel_with_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": [ { "zuid": 3171930121, "zaaid": 1019540153, "status": "ACTIVE", "user_id": 671930409, "user_type": "App User", "is_confirmed": true, "email_id": "ron.grisham@zylker.com", "first_name": "Ronald", "last_name": "Grisham", "created_time": "Jul 09, 2019 04:11 PM", "modified_time": "Jul 09, 2019 04:11 PM", "invited_time": "Jul 09, 2019 04:11 PM", "role_details": { "role_id": 3000000005015, "role_name": "App User" } "org_id":1019540153 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" }, { "zuid": 3171930089, "zaaid": 1019543293, "status": "ACTIVE", "user_id": 671930121, "user_type": "App User", "is_confirmed": true, "email_id": "Lucy.p@zylker.com", "first_name": "Lucy", "last_name": "Pettigrew", "created_time": "Jul 09, 2019 04:26 PM", "modified_time": "Jul 09, 2019 04:26 PM", "invited_time": "Jul 09, 2019 04:26 PM", "role_details": { "role_id": 3000000005015, "role_name": "App User" } "org_id":1019540153 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" }, { "zuid": 3171937685, "zaaid": 1019540091, "status": "ACTIVE", "user_id": 671930888, "user_type": "App User", "is_confirmed": true, "email_id": "zayn.ahmed@zylker.com", "first_name": "Zayn", "last_name": "Ahmed", "created_time": "Jul 09, 2019 04:26 PM", "modified_time": "Jul 09, 2019 04:26 PM", "invited_time": "Jul 09, 2019 04:26 PM", "role_details": { "role_id": 3000000005015, "role_name": "App User" } "org_id":1019540153 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" } ] }{{% /panel_with_adjustment %}} {{% expand-container %}} {{% expand id="sdkdocs-all-user" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/authentication/get-user-details/#get-all-user-details"%}}Get User Details- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/get-user-details/#get-details-of-all-users"%}}Get User Details- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-user-details/#get-details-of-all-users"%}}Get User Details- Python SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/web/v4/cloud-scale/authentication/get-user-details/#get-details-of-all-users"%}}Get User Details- Web SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Delete User" description: "This API enables you to delete an end-user from your Catalyst application and displays the details of the deleted user through Catalyst Authentication." last_updated: "2026-03-18T07:41:08.550Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/authentication/delete-user/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/authentication/delete-user/" id="DeleteUser" %}} {{%divtag class="LeftContent"%}} # Delete User ### Description This API enables you to delete a {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}user{{%/link%}} and completely remove their access to your Catalyst application. ### Request Details #### Request URL {{%request class="apired" req="DELETE" %}}<p>{api-domain}/baas/v1/project/{project_id}/project-user/{user_id}</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="user_id" data="Numerical" %}}The unique User ID of the user generated by Catalyst{{%/request_id%}} <br> #### Request Headers {{%scope%}} **Authorization:** Zoho-oauthtoken {oauth_token}<br> {{%/scope%}} <br> **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} #### Scope {{%scope%}} ZohoCatalyst.projects.users.DELETE {{%/scope%}} <br /> {{%note%}} {{%bold class="bold-primary"%}}Note:{{%/bold%}} This operation can also be executed with Catalyst user authentication permissions using Catalyst SDKs. However, the user can only obtain their own user details. Refer to the [Catalyst API Prerequisites section](/en/api/introduction/overview-and-prerequisites/#prerequisites) for details.{{%/note%}} ### Response Details The response will contain the details of the deleted user including their identification values such as {{%badge%}}zaid{{%/badge%}}, {{%badge%}}user_id{{%/badge%}}, {{%badge%}}email_id{{%/badge%}}, and their role details. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash"%}}curl -X DELETE \ https://api.catalyst.zoho.com/baas/v1/project/3000000005007/project-user/671930409 \ -H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*6.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57" {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": { "zuid": 3000000006111, "zaaid": 1019540153, "status": "ACTIVE", "user_id": 671930409, "user_type": "App Administrator", "is_confirmed": true, "email_id": "p.boyle@zylker.com", "first_name": "Patricia", "last_name": "Boyle", "created_time": "Jul 09, 2019 04:11 PM", "modified_time": "Jul 09, 2019 04:11 PM", "invited_time": "Jul 09, 2019 04:11 PM", "role_details": { "role_id": 3000000005090, "role_name": "App Administrator" } "org_id":1019540153 "locale": "us|en_us|America/Los_Angeles" "time_zone": "America/Los_Angeles" } }{{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdkdocs-getcurrentuser" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/authentication/delete-user/"%}}Delete User - Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/delete-user/"%}}Delete User - Node.js SDK{{%/link%}}<br/><br> {{%link href="/en/sdk/python/v1/cloud-scale/authentication/delete-user/" %}}Delete User - Python SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Reset User Password" description: "This API enables you to reset the password of a user of your Catalyst application through Catalyst Authentication." last_updated: "2026-03-18T07:41:08.550Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/authentication/reset-user-password/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/authentication/reset-user-password/" id="ResetUserPassword" %}} {{%divtag class="LeftContent"%}} # Reset User Password ### Description This API enables you to {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#reset-a-users-password"%}}reset the password{{%/link%}} of a user of your Catalyst application. When this API is called, an email will be sent to the user's email address with a password reset link. The user can configure a new password for your application and save it, upon clicking the link. ### Request Details #### Request URL {{%request class="apiyellow" req="POST" %}}<p>{api-domain}/baas/v1/project/{project_id}/project-user/forgotpassword</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} #### Request Headers {{%scope%}} **Content-Type:** application/json<br> **PROJECT_ID:** {{{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/#configure-authorized-uris"%}}ZAID{{%/link%}}} {{%/scope%}} <br> **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} {{%note%}} {{%bold class="bold-primary"%}}Note:{{%/bold%}} Catalyst does not authenticate this API request. Therefore, you need not pass an OAuth token or specify any scopes.{{%/note%}} #### Request JSON Properties {{% nested_fields children="open" border="yes" expandable="no" title="platform_type" textformat="string" condition="mandatory" maxlength=" " %}} Accepted values: {{%badge%}}web{{%/badge%}}, {{%badge%}}android{{%/badge%}}, {{%badge%}}ios{{%/badge%}} <br> Max Size: N/A {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="no" title="redirect_url" textformat="string" condition="optional" maxlength="200" %}} The URL to be redirected to, after the user resets the password <br> Max Size: 200 {{% /nested_fields %}} {{% nested_fields children="open" border="yes" expandable="yes" title="user_details" textformat="json" condition="mandatory" maxlength=" " %}} The JSON that contains the details of the user {{% nested_button%}} {{%request_id id="first_name" data="String" %}} First name of the user <br> Mandatory: No <br> Max Size: 100{{%/request_id%}} {{%request_id id="last_name" data="String" %}} Last name of the user <br> Mandatory: No <br> Max Size: 100{{%/request_id%}} {{%request_id id="email_id" data="String" %}} Email address of the user <br> Mandatory: Yes <br> Max Size: N/A{{%/request_id%}} {{% /nested_fields %}} ### Response Details The response will contain the status of the reset password action. {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash"%}}curl -X POST \ https://api.catalyst.zoho.com/baas/v1/project/3000000002001/project-user/forgotpassword \ -H "Content-Type: application/json" \ -d '{ "user_details":{ "email_id":"p.boyle@zylker.com" }, "platform_type":"web" }' {{% /panel_without_adjustment %}} {{% panel_without_adjustment header="Sample Response" class="language-json line-numbers"%}} { "status": "success", "data": "Reset link sent to your p.boyle@zylker.com email address. Please check your email :)" }{{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdkdocs-reset-password" header="SDK Documentation"%}} {{%link href="/en/sdk/java/v1/cloud-scale/authentication/reset-password"%}}Reset User Password- Java SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/reset-password"%}}Reset User Password- Node.js SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/python/v1/cloud-scale/authentication/reset-password"%}}Reset User Password- Python SDK{{%/link%}}<br/><br/> {{%link href="/en/sdk/web/v4/cloud-scale/authentication/reset-password"%}}Reset User Password- Web SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} -------------------------------------------------------------------------------- title: "Sign Out User" description: "This API will log a user out of an active Catalyst session through Catalyst Authentication." last_updated: "2026-03-18T07:41:08.550Z" source: "https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/authentication/sign-out-user/" service: "Cloud Scale" -------------------------------------------------------------------------------- {{% section path="/en/api/code-reference/cloud-scale/authentication/sign-out-user/" id="SignOutUser" %}} {{%divtag class="LeftContent"%}} # Sign Out User ### Description A {{%link href="/en/cloud-scale/help/authentication/user-management/introduction/"%}}Catalyst application user{{%/link%}} can log out from their current active session in the application using this API request. Catalyst will not send any response back for this API request. ### Request Details #### Request URL {{%request class="apigreen" req="GET" %}}<p>{application_domain}/baas/logout?logout=true&PROJECT_ID={project_id}</p>{{%/request%}} {{%request_id id="api-domain" data="URL" %}}The DC-specific domain to access Catalyst API{{%/request_id%}} {{%request_id id="project_id" data="Numerical" %}}The {{%link href="/en/getting-started/set-up-a-catalyst-project/general-settings/"%}}unique ID{{%/link%}} of the project{{%/request_id%}} {{%request_id id="application_domain" data="String" %}}<p>The domain address of the Catalyst application</p>{{%/request_id%}} <br> **Optional Headers** <br> {{%scope%}} **CATALYST-ORG:** {org_id} {{%/scope%}} {{%scope%}} **Environment:** Development {{%/scope%}} {{%note%}} {{%bold class="bold-primary"%}}Note:{{%/bold%}} Catalyst does not authenticate this API request. Therefore, you need not pass an OAuth token or specify any scopes.{{%/note%}} {{%/divtag%}} {{%divtag class="RightContent"%}} {{% panel_without_adjustment header="Sample Request" class="language-bash"%}}curl -X GET \ https://portal.zylker.com/baas/logout?logout=true&PROJECT_ID=3000000002001 {{% /panel_without_adjustment %}} {{% expand-container %}} {{% expand id="sdkdocs-signout" header="SDK Documentation"%}} {{%link href="/en/sdk/web/v4/cloud-scale/authentication/sign-out-user/"%}}Sign Out User- Web SDK{{%/link%}} {{%/expand%}} {{%/expand-container%}} {{%/divtag%}} {{%/section%}} --- ## SDK — Android — Authentication -------------------------------------------------------------------------------- title: "Create User Instance" description: "Catalyst Authentication features enable you to manage the user authentication of your Catalyst app, add users, and configure their user accounts." last_updated: "2026-03-18T07:41:08.554Z" source: "https://docs.catalyst.zoho.com/en/sdk/android/v2/cloud-scale/authentication/create-user-instance/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Add New User - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Authentication {{%link href="/en/cloud-scale/help/authentication/introduction"%}}Catalyst Authentication{{%/link%}} is a component of Catalyst Cloud Scale that enables you to add end-users to your application, customize app login and sign-up forms, manage user accounts and roles, and ensure secure access throughout your application. ## Create a New User Instance You can create a new user instance, and enable the methods defined in this class to access the instance object. This will prevent unnecessary server calls. You must pass the user's details to the {{%badge%}}**newUser()**{{%/badge%}} method as shown in the code structure below. You must pass the user's email address and last name mandatorily to create the instance successfully. {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().newUser( lastName: String, email:String ): ZCatalystUser{{%/code%}} **Parameters**: * {{%badge%}}**lastName**{{%/badge%}}: The last name of the new user * {{%badge%}}**email**{{%/badge%}}: Email address of the user, to which the {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/"%}}invitation mail{{%/link%}} will be sent A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}val user = ZCatalystApp.getInstance().newUser("Burrows", "emma@zylker.com"){{%/code%}} -------------------------------------------------------------------------------- title: "User Signup" description: "Adding new users to your catalyst application" last_updated: "2026-03-18T07:41:08.554Z" source: "https://docs.catalyst.zoho.com/en/sdk/android/v2/cloud-scale/authentication/user-signup/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # User Signup You can add a new {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}user{{%/link%}} to your Catalyst app by calling the {{%badge%}}**signUp()**{{%/badge%}} method. You must pass the {{%link href="/en/sdk/android/v2/cloud-scale/authentication/create-user-instance"%}}user instance defined here{{%/link%}} as the argument to the {{%badge%}}signup(){{%/badge%}} method. The code syntax for user signup is given below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().signUp( newUser: ZCatalystUser, success: (Pair&lt;ZCatalystOrg, ZCatalystUser&gt;) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;Pair&lt;ZCatalystOrg, ZCatalystUser&gt;&gt;&gt;? {{%/code%}} **Parameters**: * {{%badge%}}**newUser**{{%/badge%}}: The user instance created before this operation A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().signUp(user, { success -> println("User Sign up success") }, { exception -> println("User Sign up failed $exception") }) {{%/code%}} -------------------------------------------------------------------------------- title: "User Login" description: "You can display the login page to the end user of your Catalyst Android app." last_updated: "2026-03-18T07:41:08.554Z" source: "https://docs.catalyst.zoho.com/en/sdk/android/v2/cloud-scale/authentication/user-login/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # User Login You can display the login page to the {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}end user{{%/link%}} of your Catalyst Android app using the {{%badge%}}**login()**{{%/badge%}} method. This will be displayed when the user is logged out of the app. If the login is successful, the user will be able to access the app. The code syntax for user login is given below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().login( success: () → Unit, failure: (ZCatalystException) → Unit ): Unit {{%/code%}} A sample code snippet is shown below: {{%code class="language-bash line-numbers" scroll="set-scroll" %}}ZCatalystApp.getInstance().login( { ZCatalystLogger.logInfo("Login Success") //Actions to execute on successful login }, { ZCatalystLogger.logError("Login failed - $it") //Actions to execute on failed login }) {{%/code%}} The methods of the {{%badge%}}ZCatalystLogger{{%/badge%}} class are used to log the result of the operation. You can define your own actions to execute on a successful or a failed login. -------------------------------------------------------------------------------- title: "User Logout" description: "You can log an app user out from the Catalyst Android app." last_updated: "2026-03-18T07:41:08.554Z" source: "https://docs.catalyst.zoho.com/en/sdk/android/v2/cloud-scale/authentication/user-logout/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Logout User - API (/en/api/code-reference/cloud-scale/authentication/sign-out-user/#SignOutUser) -------------------------------------------------------------------------------- # User Logout The {{%badge%}}logout(){{%/badge%}} method can log an {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}app user{{%/link%}} out from the Catalyst Android app. The code syntax for user logout is given below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().logout( success: () → Unit, failure: (ZCatalystException) → Unit ): Unit {{%/code%}} A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().logout( { ZCatalystLogger.logInfo("Logout Success") //Actions to execute on successful logout }, { ZCatalystLogger.logError("Logout failed - $it") //Actions to execute on failed logout }) {{%/code%}} The methods of the {{%badge%}}ZCatalystLogger{{%/badge%}} class are used to log the result of the operation. You can define your own actions to execute upon a successful or failed logout. -------------------------------------------------------------------------------- title: "Get Current User" description: "You can obtain the details of the current end user of your application." last_updated: "2026-03-18T07:41:08.555Z" source: "https://docs.catalyst.zoho.com/en/sdk/android/v2/cloud-scale/authentication/get-current-user/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Add New User - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Get Current User You can obtain the details of the current {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}end user{{%/link%}} of your application by calling the {{%badge%}}getCurrentUser(){{%/badge%}} method. Upon successful execution, this method will return the current user object. You can fetch the user's details that are registered in Catalyst, such as their first name, last name, or email address, using this. The code syntax for obtaining the current user is given below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().getCurrentUser( success: (ZCatalystUser) → Unit, failure: ((ZCatalystException) → Unit)? ): ZCatalystRequest&lt;ZCatalystResponse&lt;ZCatalystUser&gt;&gt;? {{%/code%}} A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().getCurrentUser( { user -> println("The current user is : ${user.firstName}") }, { exception -> println("Get current user failed! $exception") } ) {{%/code%}} -------------------------------------------------------------------------------- title: "Social Logins" description: "You can provide a native Google login and logout through Social Logins in your Android app." last_updated: "2026-03-18T07:41:08.555Z" source: "https://docs.catalyst.zoho.com/en/sdk/android/v2/cloud-scale/authentication/social-logins/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Social Logins (/en/cloud-scale/help/authentication/social-logins/introduction/) - Google Login (/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-google-social-login) - Authentication - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Social Logins Catalyst enables you to allow your end users to log on to your application using popular Identity Providers (IdP) or {{%link href="/en/cloud-scale/help/authentication/social-logins/introduction/"%}}Social Logins{{%/link%}} through Authentication. Catalyst Android SDK enables you to provide Google login and logout functionality for your Android app users. {{%note%}}{{%bold%}}Note:{{%/bold%}} {{%link href="/en/cloud-scale/help/authentication/public-signup/"%}}Public Signup{{%/link%}} must be enabled to use Social Logins.{{%/note%}} ### Google Login You can provide a native Google login in your Android app by configuring their authentication with Catalyst. To do so, you must register your app in the Google API console and obtain the required OAuth credentials, that include the client ID and client secret. You can learn about the steps involved in this process from the {{%link href="/en/cloud-scale/help/authentication/social-logins/configuring-social-logins/#enable-google-social-login"%}}Enable Google Social Login help section{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} You must configure the application type as a web application in step 12.{{%/note%}} After you finish configuring the Google social login in the Catalyst console, you can pass the client ID obtained from Google to perform the user login as shown below. {{%code class="language-bash line-numbers"%}}fun login(activity: Activity, googleClientID: String, success: () -> Unit, failure: (ZCatalystException) -> Unit){{%/code%}} **Parameters**: * {{%badge%}}**googleClientID**{{%/badge%}}: The client ID obtained after configuring OAuth in Google's API console A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().login("activity", "570*******************", { success -> println("User login success") }, { exception -> println("User login failed $exception") }){{%/code%}} ### Google Logout You can log users out of your Catalyst Android app from their Google login by passing the client ID obtained from Google after configuring OAuth in Google's API console. This can be done as shown below. {{%code class="language-bash line-numbers"%}}fun logout(activity: Activity, googleClientID: String, success: () -> Unit, failure: (ZCatalystException) -> Unit){{%/code%}} **Parameters**: * {{%badge%}}**googleClientID**{{%/badge%}}: The client ID obtained after configuring OAuth in Google's API console A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().logout("activity", "570*******************", { println("Logout success") }, { println("Logout failed $exception") }){{%/code%}} -------------------------------------------------------------------------------- title: "Third-Party Authentication" description: "You can implement a third-party authentication service of your preference in your Android app." last_updated: "2026-03-18T07:41:08.555Z" source: "https://docs.catalyst.zoho.com/en/sdk/android/v2/cloud-scale/authentication/third-party-authentication/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Third-Party Authentication (/en/cloud-scale/help/authentication/third-party-authentication/introduction/) - Generate Custom Server Token- Java SDK (/en/sdk/java/v1/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Node.js SDK (/en/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Python SDK (/en/sdk/python/v1/cloud-scale/authentication/third-party-server-token/) - Authentication - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Third-Party Authentication Cloud Scale's Authentication allows you to implement a {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/"%}}third-party authentication{{%/link%}} service of your preference for your Catalyst application. The authorization and validation of the end-user is handled by the third-party service, and the data is passed on to Catalyst. {{%note%}}{{%bold%}}Note:{{%/bold%}} Since you are implementing a third-party authentication service, it is understood that the security infrastructure of your application is contingent on the efficiency of the third-party service that you have chosen.{{%/note%}} To implement third-party authentication in your Android app, you will need to perform the steps described below. ### 1. Configure the Third-Party Authentication Service Before you associate a third-party authentication with your Catalyst application, you must ensure that you have first completed handling the third-party logic in the external service. You can configure the authentication with any third-party of your choice. <br> ### 2. Set up the Third-Party Authentication Type in Catalyst You must now set up the third-party authentication that you configured in Catalyst by navigating to the Authentication component in Cloud Scale in the Catalyst console. The steps are explained in {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/implementation/"%}}Set Up Third-party Authentication in Catalyst help page{{%/link%}}. This process involves the following steps that you must perform: **i. Generate a custom server token:** When a user is re-directed from a third-party service after being authenticated, their credentials must be passed to an authentication function that you will need to code in {{%link href="/en/sdk/java/v1/cloud-scale/authentication/third-party-server-token/"%}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/"%}}Node.js{{%/link%}}, or {{%link href="/en/sdk/python/v1/cloud-scale/authentication/third-party-server-token/"%}}Python{{%/link%}}. This function will generate a Catalyst server-side token {{%badge%}}**jwtToken**{{%/badge%}} or {{%badge%}}**customToken**{{%/badge%}} which will then be passed to client-side (Android app). The Catalyst console provides readymade scripts to generate the {{%badge%}}customToken{{%/badge%}}. You can incorporate this script in the server-side function you write, to return the {{%badge%}}customToken{{%/badge%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} To enable a third-party authentication in your Catalyst application, you must ensure that you have enabled {{%link href="/en/cloud-scale/help/authentication/public-signup/"%}}Public Signup{{%/link%}} in the console.{{%/note%}} **ii. Skip the client-side configuration:** You can skip the client-side configuration in the console for now, as we will incorporate the custom server token in the client logic at the end to complete the login process. **iii. Configure additional settings and finish the setup:** Configure Customer User Validation or Authorized Domains as a part of Whitelisting and finish the set up. Catalyst will display a confirmation that a third-party authentication service has been enabled and your application’s authentication is being handled by it. <br> ### 3. Re-Import the Configuration File in your Android Project After you enable the third-party authentication for your Android app from the Catalyst console, you will need to download and import the {{%link href="/en/sdk/android/v2/setup/#step-2-import-the-configuration-file-in-your-android-project"%}}{{%badge%}}app_configuration_development{{%/badge%}} or the {{%badge%}}app_configuration_production{{%/badge%}} properties file{{%/link%}} in your Android project again, based on your app's {{%link href="/en/deployment-and-billing/environments/introduction/"%}}environment{{%/link%}}. This is because this file will now include two additional properties: {{%link href="/en/sdk/android/v2/setup/#properties-of-the-app_configuration_developmentproperties-app_configuration_productionproperties-file"%}}{{%badge%}}JWTClientID{{%/badge%}} and {{%badge%}}JWTClientSecret{{%/badge%}}{{%/link%}}. These properties will need to be passed in the next step, after you re-initialize the SDK. To re-download the configuration file: 1. Navigate to **Settings**, then {{%link href="/en/getting-started/set-up-a-catalyst-project/developer-tools/"%}}**Developer Tools**{{%/link%}} in your Catalyst console of your project. You will find your existing Android package under the Mobile SDK section. Open the package. <br> 2. Click on the required environment tab in the pop-up, then click **Download** to download the configuration file. <br> You can now re-import this downloaded configuration file by following the steps mentioned {{%link href="/en/sdk/android/v2/setup/#step-2-import-the-configuration-file-in-your-android-project"%}}here{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} You need not perform the steps 3 to 5 given in the SDK setup help page again.{{%/note%}} <br> ### 4. Re-Initialize the SDK You must now re-initialize the SDK to include the newly-downloaded properties in your code. Re-initializing the SDK can also be done in two ways similar to {{%link href="/en/sdk/android/v2/setup/#step-6-initialize-the-sdk"%}}initializing the SDK for the first time{{%/link%}}: by specifying the environment of the project, and without specifying the environment where the production environment is considered the default. However, this will include additional SDK methods to confirm third-party authentication. #### Method 1: By specifying the environment You can re-initialize the SDK as shown below. You can pass the values for the {{%badge%}}Environment{{%/badge%}} as either {{%badge%}}DEVELOPMENT{{%/badge%}} or {{%badge%}}PRODUCTION{{%/badge%}} based on the environment the app is operating in. The {{%badge%}}isCustomLogin{{%/badge%}} indicates a boolean value that is set for the presence of a third-party authentication. These are passed to the {{%badge%}}init(){{%/badge%}} method through the {{%badge%}}ZCatalystApp{{%/badge%}} class as shown below: {{%code class="language-bash line-numbers"%}}fun init( context: Context, environment: ZCatalystSDKConfigs.Environment, isCustomLogin: Boolean = false ): ZCatalystApp{{%/code%}} A sample code snippet for this operation is given below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.init( context, ZCatalystSDKConfigs.Environment.{DEVELOPMENT}, true ){{%/code%}} <br> #### Method 2: Without specifying the environment If the {{%badge%}}Environment{{%/badge%}} is not specified in the SDK initialization, it would be considered as {{%badge%}}PRODUCTION{{%/badge%}} by default. This method also lets you re-initialize the SDK by specifying the {{%badge%}}JWTClientID{{%/badge%}} and {{%badge%}}JWTClientSecret{{%/badge%}} properties obtained from the newly-downloaded configuration file through with {{%badge%}}ZCatalystSDKConfigsBuilder{{%/badge%}}. This can be done in the following way: {{%code class="language-bash line-numbers"%}}fun init(context: Context, sdkConfigs: ZCatalystSDKConfigs, isCustomLogin: Boolean = false): ZCatalystApp{{%/code%}} A sample code snippet is given below: {{%code class="language-bash line-numbers"%}}val sdkConfigs = ZCatalystSDKConfigs.Builder( apiBaseURL: 'https://api.catalyst.zoho.com', clientID: '100****************************FX', //JWTClientID clientSecret: '19ed***************************2s', //JWTClient secret redirectURL: '*****', oauthScopes: 'ZOHOCATALYST.tables.rows.ALL, ZOHOCATALYST.tables.columns.ALL', portalID: '10******79', projectID: 28*******90 ).setAccountsPortalBaseURL('https://accounts.zohoportal.com') .setUserAgent("ZCatalyst Sample App") .setRequestHeaders('PORTAL_ID', '*********') .build(); ZCatalystApp.init(context, sdkConfigs, true){{%/code%}} <br> ### 5. Code the User Login Logic for the Third-Party Authentication You can now complete the setup by handling the login logic of the third-party authentication in your Android app. You must pass the {{%badge%}}customToken{{%/badge%}} or {{%badge%}}jwtToken{{%/badge%}} generated in [step 2](/en/sdk/android/v2/cloud-scale/authentication/third-party-authentication/#2-set-up-the-third-party-authentication-type-in-catalyst) to the {{%badge%}}handleCustomLogin(){{%/badge%}} method as shown below: {{%code class="language-bash line-numbers"%}}fun handleCustomLogin(jwtToken :String, success: () -> Unit, failure: (ZCatalystException) -> Unit){{%/code%}} A sample code snippet is given below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().handleCustomLogin("123xxxxxxxx", { println("Login successfully.") }, { println("Login failed.") }){{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} The custom server token will have to be generated every single time the user logs in to your application using a third-party authentication service.{{%/note%}} --- ## SDK — Flutter — Authentication -------------------------------------------------------------------------------- title: "Create User Instance" description: "You can create a new user instance to perform user operations in your Flutter app." last_updated: "2026-03-18T07:41:08.556Z" source: "https://docs.catalyst.zoho.com/en/sdk/flutter/v2/cloud-scale/authentication/create-user-instance/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Add New User - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Authentication {{%link href="/en/cloud-scale/help/authentication/introduction"%}}Catalyst Authentication{{%/link%}} features enable you to manage the user authentication of your Catalyst app, add users, and configure their user accounts. ## Create a New User Instance You can create a new user instance, and enable the methods defined in this class to access the instance object. This will prevent unnecessary server calls. You must pass the user's details to the {{%badge%}}**newUser()**{{%/badge%}} method, as shown in the code syntax below. You must pass the user's email address and first name mandatorily to create the instance successfully. {{%code class="language-bash line-numbers"%}}ZCatalystUserDelegate newUser({ required String firstName, required String emailId, String? lastName, ZCatalystRole? role, }){{%/code%}} **Parameters**: * {{%badge%}}**lastName**{{%/badge%}} (Mandatory): The last name of the new user. * {{%badge%}}**email**{{%/badge%}} (Mandatory): Email address of the user to which the {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/"%}}invitation mail{{%/link%}} will be sent. * {{%badge%}}**lastName**{{%/badge%}}: The last name of the new user. * {{%badge%}}**role**{{%/badge%}}: The {{%link href="/en/cloud-scale/help/authentication/user-management/roles/introduction/"%}}role{{%/link%}} the user must be assigned to. A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}ZCatalystUserDelegate newUser = ZCatalystApp.getInstance().newUser( firstName: 'Patricia', emailId: 'p.boyle@zylker.com', lastname: 'Boyle', role: Admin, );{{%/code%}} -------------------------------------------------------------------------------- title: "User Signup" description: "You can add new users to your Flutter application through signup" last_updated: "2026-03-18T07:41:08.556Z" source: "https://docs.catalyst.zoho.com/en/sdk/flutter/v2/cloud-scale/authentication/user-signup/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # User Signup You can add a new {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}user{{%/link%}} to your Catalyst app by calling the {{%badge%}}**signUp()**{{%/badge%}} method. You must pass the {{%link href="/en/sdk/flutter/v2/cloud-scale/authentication/create-user-instance"%}}user instance defined here{{%/link%}} as the argument to the {{%badge%}}signup(){{%/badge%}} method. The code syntax for user signup is given below: {{%code class="language-bash line-numbers"%}}Future<(APIResponse, ZCatalystUser)> signUp(ZCatalystUserDelegate newUser){{%/code%}} **Parameters**: * {{%badge%}}**newUser**{{%/badge%}}: The user instance created {{%link href="/en/sdk/flutter/v2/cloud-scale/authentication/create-user-instance/"%}}before this operation{{%/link%}} A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().newUser( firstName: 'Patricia', emailId: 'p.boyle@zylker.com', ); try { var (response, user) = await ZCatalystApp.getInstance().signUp(newUser); print('User ID: ${user.id}') } on ZCatalystException catch (ex) { print(ex.toString()); }{{%/code%}} -------------------------------------------------------------------------------- title: "User Login" description: "You can display the login page to the end user of your Catalyst Flutter app." last_updated: "2026-03-18T07:41:08.556Z" source: "https://docs.catalyst.zoho.com/en/sdk/flutter/v2/cloud-scale/authentication/user-login/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # User Login You can display the login page to the {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}end user{{%/link%}} of your Catalyst Flutter app using the {{%badge%}}**login()**{{%/badge%}} method. This will be displayed when the user is logged out of the app. If the login is successful, the user will be able to access the app. A sample code snippet is shown below: {{%code class="language-bash line-numbers" scroll="set-scroll" %}}await ZCatalystApp.getInstance().login(){{%/code%}} -------------------------------------------------------------------------------- title: "User Logout" description: "You can log an app user out from the Catalyst Flutter app." last_updated: "2026-03-18T07:41:08.557Z" source: "https://docs.catalyst.zoho.com/en/sdk/flutter/v2/cloud-scale/authentication/user-logout/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Logout User - API (/en/api/code-reference/cloud-scale/authentication/sign-out-user/#SignOutUser) -------------------------------------------------------------------------------- # User Logout The {{%badge%}}logout(){{%/badge%}} method can log an {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}app user{{%/link%}} out from the Catalyst Flutter app. A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}await ZCatalystApp.getInstance().logout(){{%/code%}} -------------------------------------------------------------------------------- title: "User Authentication Status" description: "You can find the authentication status of a Flutter app user easily." last_updated: "2026-03-18T07:41:08.557Z" source: "https://docs.catalyst.zoho.com/en/sdk/flutter/v2/cloud-scale/authentication/user-authentication-status/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Authentication - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # User Authentication Status You can find the authentication status of an {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}app user{{%/link%}} using the {{%badge%}}isUserLoggedIn(){{%/badge%}} method. This will return a boolean response as to the user's login status. The code syntax for user logout is given below: {{%code class="language-bash line-numbers"%}}bool isUserLoggedIn = await ZCatalystApp.getInstance().isUserLoggedIn(); //Actions to be executed upon successfully fetching the status{{%/code%}} A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}bool isUserLoggedIn = await ZCatalystApp.getInstance().isUserLoggedIn(); print(isUserLoggedIn); //prints "true" or "false"{{%/code%}} -------------------------------------------------------------------------------- title: "Get Current User" description: "You can obtain the details of the current end user of your Flutter application." last_updated: "2026-03-18T07:41:08.557Z" source: "https://docs.catalyst.zoho.com/en/sdk/flutter/v2/cloud-scale/authentication/get-current-user/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Add New User - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Get Current User You can obtain the details of the current {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}end user{{%/link%}} of your application by calling the {{%badge%}}getCurrentUser(){{%/badge%}} method. Upon successful execution, this method will return the current user object. You can fetch the user's details that are registered in Catalyst, such as their first name, last name, or email address, using this. The code syntax for obtaining the current user is given below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.getInstance().getCurrentUser( void Function() onSuccess, void Function(ZCatalystException) onFailed ){{%/code%}} A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}try { var (response, user) = await app.getCurrentUser(); print('User ID: ${user.id}') } on ZCatalystException catch (ex) { print(ex.toString()); }{{%/code%}} -------------------------------------------------------------------------------- title: "Third-Party Authentication" description: "You can implement a third-party authentication service of your preference in your Flutter app." last_updated: "2026-03-18T07:41:08.557Z" source: "https://docs.catalyst.zoho.com/en/sdk/flutter/v2/cloud-scale/authentication/third-party-authentication/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Third-Party Authentication (/en/cloud-scale/help/authentication/third-party-authentication/introduction/) - Generate Custom Server Token- Java SDK (/en/sdk/java/v1/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Node.js SDK (/en/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Python SDK (/en/sdk/python/v1/cloud-scale/authentication/third-party-server-token/) - Authentication - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Third-Party Authentication Cloud Scale's Authentication allows you to implement a {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/"%}}third-party authentication{{%/link%}} service of your preference for your Catalyst application. The authorization and validation of the end-user is handled by the third-party service, and the data is passed on to Catalyst. {{%note%}}{{%bold%}}Note:{{%/bold%}} Since you are implementing a third-party authentication service, it is understood that the security infrastructure of your application is contingent on the efficiency of the third-party service that you have chosen.{{%/note%}} To implement third-party authentication in your mobile app, you will need to perform the steps described below. ### 1. Configure the Third-Party Authentication Service Before you associate a third-party authentication with your Catalyst application, you must ensure that you have first completed handling the third-party logic in the external service. You can configure the authentication with any third-party of your choice. <br> ### 2. Set up the Third-Party Authentication Type in Catalyst You must now set up the third-party authentication that you configured in Catalyst by navigating to the Authentication component in Cloud Scale in the Catalyst console. The steps are explained in {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/implementation/"%}}Set Up Third-party Authentication in Catalyst help page{{%/link%}}. This process involves the following steps that you must perform: **i. Generate a custom server token:** When a user is re-directed from a third-party service after being authenticated, their credentials must be passed to an authentication function that you will need to code in {{%link href="/en/sdk/java/v1/cloud-scale/authentication/third-party-server-token/"%}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/"%}}Node.js{{%/link%}}, or {{%link href="/en/sdk/python/v1/cloud-scale/authentication/third-party-server-token/"%}}Python{{%/link%}}. This function will generate a Catalyst server-side token {{%badge%}}**jwtToken**{{%/badge%}} or {{%badge%}}**customToken**{{%/badge%}} which will then be passed to client-side (Flutter app). The Catalyst console provides readymade scripts to generate the {{%badge%}}customToken{{%/badge%}}. You can incorporate this script in the server-side function you write, to return the {{%badge%}}customToken{{%/badge%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} To enable a third-party authentication in your Catalyst application, you must ensure that you have enabled {{%link href="/en/cloud-scale/help/authentication/public-signup/"%}}Public Signup{{%/link%}} in the console.{{%/note%}} **ii. Skip the client-side configuration:** You can skip the client-side configuration in the console for now, as we will incorporate the custom server token in the client logic at the end to complete the login process. **iii. Configure additional settings and finish the setup:** Configure Customer User Validation or Authorized Domains as a part of Whitelisting and finish the set up. Catalyst will display a confirmation that a third-party authentication service has been enabled and your application’s authentication is being handled by it. <br> ### 3. Re-Import the Configuration File in your Flutter Project After you enable the third-party authentication for your Android app from the Catalyst console, you will need to download and import the properties file in your Flutter project again, based on the platform that you are developing your app in and your app's {{%link href="/en/deployment-and-billing/environments/introduction/"%}}environment{{%/link%}}. That is, if you are developing an Android app, download the {{%link href="/en/sdk/flutter/v2/setup-for-android/#properties-of-the-app_configuration_developmentproperties-app_configuration_productionproperties-file"%}}{{%badge%}}app_configuration_development{{%/badge%}} or the {{%badge%}}app_configuration_production{{%/badge%}} file{{%/link%}}, and if you are developing an iOS app, download the {{%link href="/en/sdk/flutter/v2/setup-for-ios/#properties-of-the-appconfigurationdevelopmentplist-appconfigurationproductionplist-file"%}}{{%badge%}}AppConfigurationDevelopment.plist{{%/badge%}} or {{%badge%}}AppConfigurationProduction.plist{{%/badge%}} file{{%/link%}}. This is because this file will now include two additional properties: {{%badge%}}JWTClientID{{%/badge%}} and {{%badge%}}JWTClientSecret{{%/badge%}}. These properties will need to be passed in the next step, after you re-initialize the SDK. To re-download the configuration file: 1. Navigate to **Settings**, then {{%link href="/en/getting-started/set-up-a-catalyst-project/developer-tools/"%}}**Developer Tools**{{%/link%}} in your Catalyst console of your project. You will find your existing Android or iOS package under the Mobile SDK section. Open the required package. <br> 2. Click on the required environment tab in the pop-up, then click **Download** to download the configuration file. <br> You can now re-import this downloaded configuration file by following the steps mentioned {{%link href="/en/sdk/android/v2/setup/#step-2-import-the-configuration-file-in-your-android-project"%}}here{{%/link%}} for Android and {{%link href="/en/sdk/flutter/v2/setup-for-ios/#step-2-import-the-configuration-file-in-your-ios-project"%}}here{{%/link%}} for iOS. {{%note%}}{{%bold%}}Note:{{%/bold%}} You need not perform the steps 3 to 5 given in the Android SDK setup or steps 3, 4, 6 given in the iOS SDK setup help pages again.{{%/note%}} <br> ### 4. Re-Initialize the Flutter SDK You must now re-initialize the SDK to include the newly-downloaded properties in your code. Re-initializing the SDK can also be done in two ways similar to {{%link href="/en/sdk/flutter/v2/implement-flutter-sdk/#initialize-the-sdk"%}}initializing the SDK for the first time{{%/link%}}: Using the Catalyst configuration file or By passing the custom SDK Configuration Object. However, this will include additional SDK methods to confirm third-party authentication. #### 1. Using the Catalyst Configuration File You can do this by specifying the environment of the project, or without specifying the environment where the production environment is considered the default. **By specifying the environment:** You can re-initialize the SDK as shown below. You can pass the values for the {{%badge%}}Environment{{%/badge%}} as either {{%badge%}}DEVELOPMENT{{%/badge%}} or {{%badge%}}PRODUCTION{{%/badge%}} based on the environment the app is operating in. The {{%badge%}}isCustomLogin{{%/badge%}} indicates a boolean value that is set for the presence of a third-party authentication. These are passed to the {{%badge%}}init(){{%/badge%}} method through the {{%badge%}}ZCatalystApp{{%/badge%}} class as shown below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.init({ ZCatalystEnvironment? environment, bool isCustomLogin = false });{{%/code%}} A sample code snippet for this operation is given below: {{%code class="language-bash line-numbers"%}}void main() async { try { await ZCatalystApp.init( environment: ZCatalystEnvironment.DEVELOPMENT, isCustomLogin: true ); } on ZCatalystException catch (ex) { print('Initialized Failed: ${ex.toString()}'); } }{{%/code%}} <br> **Without specifying the environment:** If the {{%badge%}}Environment{{%/badge%}} is not specified in the SDK initialization, it would be considered as {{%badge%}}PRODUCTION{{%/badge%}} by default. Therefore, if your app is operating in the Production environment, you can initialize the SDK directly in the following way: {{%code class="language-bash line-numbers"%}}ZCatalystApp.init({ bool isCustomLogin = false });{{%/code%}} A sample code snippet for this operation is given below: {{%code class="language-bash line-numbers"%}}void main() async { try { await ZCatalystApp.init( isCustomLogin: true ); } on ZCatalystException catch (ex) { print('Initialized Failed: ${ex.toString()}'); } }{{%/code%}} <br> #### 2. By passing the custom SDK Configuration Object: Alternatively, you can re-initialize the Flutter SDK by building a custom {{%badge%}}ZCatalystSDKConfigs{{%/badge%}} object that you can pass using the {{%badge%}}ZCatalystSDKConfigsBuilder{{%/badge%}} class. You can refer {{%link href="/en/sdk/flutter/v2/implement-flutter-sdk/#2-by-passing-the-custom-sdk-configuration-object"%}}here{{%/link%}} for the properties included in this object. This method also lets you re-initialize the SDK by specifying the {{%badge%}}JWTClientID{{%/badge%}} and {{%badge%}}JWTClientSecret{{%/badge%}} properties obtained from the newly-downloaded configuration file through with {{%badge%}}ZCatalystSDKConfigsBuilder{{%/badge%}}. This can be done in the following way: {{%code class="language-bash line-numbers"%}}ZCatalystApp.init({ ZCatalystSDKConfigs? sdkConfigs, ZCatalystEnvironment? environment, bool isCustomLogin = true });{{%/code%}} A sample code snippet is given below: {{%code class="language-bash line-numbers"%}}ZCatalystSDKConfigs configs = ZCatalystSDKConfigsBuilder.customLogin( accountsPortalBaseURL: "https://accounts.zohoportal.com/", apiBaseURL: "https://api.catalyst.zoho.com/", environment: ZCatalystEnvironment.DEVELOPMENT, jwtClientID: "100****************************FX", jwtClientSecret: "19ed***************************2s", oauthScopes: "ZOHOCATALYST.tables.rows.ALL, ZOHOCATALYST.tables.columns.ALL", portalID: "10******79", projectID:28*****90 , redirectURL: "*****" );{{%/code%}} <br> ### 5. Code the User Login Logic for the Third-Party Authentication You can now complete the setup by handling the login logic of the third-party authentication in your mobile app. You must pass the {{%badge%}}customToken{{%/badge%}} or {{%badge%}}jwtToken{{%/badge%}} generated in [step 2](/en/sdk/flutter/v2/cloud-scale/authentication/third-party-authentication/#2-set-up-the-third-party-authentication-type-in-catalyst) to the {{%badge%}}handleCustomLogin(){{%/badge%}} method as shown below: {{%code class="language-bash line-numbers"%}}Future&lt;void&gt; handleCustomLogin(String jwtToken){{%/code%}} A sample code snippet is given below: {{%code class="language-bash line-numbers"%}}await ZCatalystApp.getInstance().handleCustomLogin("123xxxxxxxx");{{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} The custom server token will have to be generated every single time the user logs in to your application using a third-party authentication service.{{%/note%}} --- ## SDK — iOS — Authentication -------------------------------------------------------------------------------- title: "Create a New User Instance" description: "Catalyst authentication feature enables you to manage user authentication. You can create new user instances to prevent unnecessary server calls." last_updated: "2026-03-18T07:41:08.558Z" source: "https://docs.catalyst.zoho.com/en/sdk/ios/v2/cloud-scale/authentication/create-user-instance/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Add New User - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Authentication {{%link href="/en/cloud-scale/help/authentication/introduction"%}}Catalyst Authentication{{%/link%}} is a component of Catalyst Cloud Scale that enables you to add end-users to your application, customize app login and sign-up forms, manage user accounts and roles, and ensure secure access throughout your application. ## Create a New User Instance You can create a new user instance, and enable the methods defined in this class to access the instance object. This will prevent unnecessary server calls. You must pass the user's details to the {{%badge%}}**newUser()**{{%/badge%}} method as shown in the code syntax below. You must pass the user's email address and last name mandatorily to create the instance successfully. {{%code class="language-bash"%}}ZCatalystApp.shared.newUser( lastName : String, email : String ) -> ZCatalystUser{{%/code%}} **Parameters**: * {{%badge%}}**lastName**{{%/badge%}}: The last name of the new user * {{%badge%}}**email**{{%/badge%}}: Email address of the user, to which the {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/"%}}invitation mail{{%/link%}} will be sent A sample code snippet is shown below: {{%code class="language-bash"%}}ZCatalystApp.shared.newUser( lastName : "Burrows", email : "emma@zylker.com" ) -> ZCatalystUser{{%/code%}} -------------------------------------------------------------------------------- title: "User Signup" description: "Adding new users to your catalyst application." last_updated: "2026-03-18T07:41:08.558Z" source: "https://docs.catalyst.zoho.com/en/sdk/ios/v2/cloud-scale/authentication/user-signup/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # User Signup You can add a new {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}user{{%/link%}} to your Catalyst app by calling the {{%badge%}}signUp(){{%/badge%}} method. You must pass the {{%link href="/en/sdk/ios/v2/cloud-scale/authentication/create-user-instance"%}}user instance defined here{{%/link%}} as the argument to the {{%badge%}}**signUp()**{{%/badge%}} method. The code syntax for user signup is given below: {{%code class="language-bash"%}}ZCatalystApp.shared.signUp(user: ZCatalystUser, completion: @escaping (Result&lt;( ZCatalystUser, Int64 ), ZCatalystError &gt;) -> Void){{%/code%}} **Parameters**: * {{%badge%}}**user**{{%/badge%}}: The user instance created before this operation * {{%badge%}}**completion**{{%/badge%}}: If the call executes successfully, the completion block returns the user object with an {{%badge%}}UserID{{%/badge%}}, {{%badge%}}ZUID{{%/badge%}}, {{%badge%}}Org ID{{%/badge%}}, etc assigned for the user. Else, it returns an error. A sample code snippet is shown below: {{%code class="language-bash"%}}let userobj = ZCatalystApp.shared.newUser( lastName : "McRogan", email : "timothy.mcrogan@zylker.com") //Replace this with the last name and email address of the user ZCatalystApp.shared.signUp(user: userobj) { ( result ) in switch result{ case .success ( let result ) : print("The user \(result.0.firstName) in org \(result.1) has been successfully signed up.") case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } {{%/code%}} -------------------------------------------------------------------------------- title: "User Login" description: "You can display the login page to the end user of your Catalyst iOS app." last_updated: "2026-03-18T07:41:08.559Z" source: "https://docs.catalyst.zoho.com/en/sdk/ios/v2/cloud-scale/authentication/user-login/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Authentication - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # User Login You can display the login page to the {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}end user{{%/link%}} of your Catalyst iOS app using the {{%badge%}}**showLogin()**{{%/badge%}} method. This will be displayed when the user is logged out of the app. If the login is successful, the user will be able to access the app. The code syntax for user login is given below: {{%code class="language-bash"%}}ZCatalystApp.shared.showLogin( completion : @escaping ( Error? ) -> Void ) ViewController.swift{{%/code%}} **Parameters**: * {{%badge%}}**completion**{{%/badge%}}: The completion block will be passed with an error if the login was unsuccessful. -------------------------------------------------------------------------------- title: "User Logout" description: "You can log an app user out from the Catalyst iOS app." last_updated: "2026-03-18T07:41:08.559Z" source: "https://docs.catalyst.zoho.com/en/sdk/ios/v2/cloud-scale/authentication/user-logout/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Logout User - API (/en/api/code-reference/cloud-scale/authentication/sign-out-user/#SignOutUser) -------------------------------------------------------------------------------- # User Logout The {{%badge%}}**logout()**{{%/badge%}} method can log an {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}app user{{%/link%}} out from the Catalyst iOS app. The code syntax for user logout is given below: {{%code class="language-bash"%}}ZCatalystApp.shared.logout( completion : @escaping ( Error? ) -> Void ) ViewController.swift{{%/code%}} **Parameters**: * {{%badge%}}**completion**{{%/badge%}}: The completion block will be passed with an error if the logout was unsuccessful. -------------------------------------------------------------------------------- title: "Get Current User" description: "You can obtain the details of the current end user of your application." last_updated: "2026-03-18T07:41:08.559Z" source: "https://docs.catalyst.zoho.com/en/sdk/ios/v2/cloud-scale/authentication/get-current-user/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Users (/en/cloud-scale/help/authentication/user-management/users/introduction/) - Get Current User - API (/en/api/code-reference/cloud-scale/authentication/get-current-user/#GetCurrentUser) -------------------------------------------------------------------------------- # Get Current User You can obtain the details of the current {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/"%}}end user{{%/link%}} of your application by calling the {{%badge%}}**getCurrentUser()**{{%/badge%}} method. Upon successful execution, this method will return the current user object. You can fetch the user's details that are registered in Catalyst, like their first name, last name, email address, etc using this. The code syntax for obtaining the current user is given below: {{%code class="language-bash"%}}ZCatalystApp.shared.getCurrentUser( completion: @escaping (Result&lt; ZCatalystUser,ZCatalystError &gt; ) -> Void ){{%/code%}} **Parameters**: * {{%badge%}}**completion**{{%/badge%}}: If the call is successful, the completion block will return the current user object. Else, it will return an error. A sample code snippet is shown below: {{%code class="language-bash line-numbers"%}}ZCatalystApp.shared.getCurrentUser { ( result ) in switch result{ case .success ( let user) : print("The current user is \(user.firstName).") case .error( let error ) : print( "Error occurred &gt;&gt;&gt; \( error )" ) } } {{%/code%}} -------------------------------------------------------------------------------- title: "Third-Party Authentication" description: "You can implement a third-party authentication service of your preference in your iOS app." last_updated: "2026-03-18T07:41:08.559Z" source: "https://docs.catalyst.zoho.com/en/sdk/ios/v2/cloud-scale/authentication/third-party-authentication/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Third-Party Authentication (/en/cloud-scale/help/authentication/third-party-authentication/introduction/) - Generate Custom Server Token- Java SDK (/en/sdk/java/v1/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Node.js SDK (/en/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/) - Generate Custom Server Token- Python SDK (/en/sdk/python/v1/cloud-scale/authentication/third-party-server-token/) - Authentication - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) -------------------------------------------------------------------------------- # Third-Party Authentication Cloud Scale's Authentication allows you to implement a {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/"%}}third-party authentication{{%/link%}} service of your preference for your Catalyst application. The authorization and validation of the end-user is handled by the third-party service, and the data is passed on to Catalyst. {{%note%}}{{%bold%}}Note:{{%/bold%}} Since you are implementing a third-party authentication service, it is understood that the security infrastructure of your application is contingent on the efficiency of the third-party service that you have chosen.{{%/note%}} To implement third-party authentication in your iOS app, you will need to perform the steps described below. ### 1. Configure the Third-Party Authentication Service Before you associate a third-party authentication with your Catalyst application, you must ensure that you have first completed handling the third-party logic in the external service. You can configure the authentication with any third-party of your choice. <br> ### 2. Set up the Third-Party Authentication Type in Catalyst You must now set up the third-party authentication that you configured in Catalyst by navigating to the Authentication component in Cloud Scale in the Catalyst console. The steps are explained in {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/implementation/"%}}Set Up Third-party Authentication in Catalyst help page{{%/link%}}. This process involves the following steps that you must perform: **i. Generate a custom server token:** When a user is re-directed from a third-party service after being authenticated, their credentials must be passed to an authentication function that you will need to code in {{%link href="/en/sdk/java/v1/cloud-scale/authentication/third-party-server-token/"%}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/"%}}Node.js{{%/link%}}, or {{%link href="/en/sdk/python/v1/cloud-scale/authentication/third-party-server-token/"%}}Python{{%/link%}}. This function will generate a Catalyst server-side token {{%badge%}}**jwtToken**{{%/badge%}} or {{%badge%}}**customToken**{{%/badge%}} which will then be passed to client-side (iOS app). The Catalyst console provides readymade scripts to generate the {{%badge%}}customToken{{%/badge%}}. You can incorporate this script in the server-side function you write, to return the {{%badge%}}customToken{{%/badge%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} To enable a third-party authentication in your Catalyst application, you must ensure that you have enabled {{%link href="/en/cloud-scale/help/authentication/public-signup/"%}}Public Signup{{%/link%}} in the console.{{%/note%}} **ii. Skip the client-side configuration:** You can skip the client-side configuration in the console for now, as we will incorporate the custom server token in the client logic at the end to complete the login process. **iii. Configure additional settings and finish the setup:** Configure Customer User Validation or Authorized Domains as a part of Whitelisting and finish the set up. Catalyst will display a confirmation that a third-party authentication service has been enabled and your application’s authentication is being handled by it. <br> ### 3. Re-Import the Configuration File in your iOS Project After you enable the third-party authentication for your iOS app from the Catalyst console, you will need to download and import the {{%link href="/en/sdk/ios/v2/setup/#step-2-import-the-configuration-file-in-your-ios-project"%}}{{%badge%}}AppConfigurationDevelopment.plist{{%/badge%}} or the {{%badge%}}AppConfigurationProduction.plist{{%/badge%}} properties file{{%/link%}} in your iOS project again, based on your app's {{%link href="/en/deployment-and-billing/environments/introduction/"%}}environment{{%/link%}}. This is because this file will now include two additional properties: {{%link href="/en/sdk/ios/v2/setup/#properties-of-the-appconfigurationdevelopmentplist-appconfigurationproductionplist-file"%}}{{%badge%}}JWTClientID{{%/badge%}} and {{%badge%}}JWTClientSecret{{%/badge%}}{{%/link%}}. These properties will need to be passed in the next step, after you re-initialize the SDK. To re-download the configuration file: 1. Navigate to **Settings**, then {{%link href="/en/getting-started/set-up-a-catalyst-project/developer-tools/"%}}**Developer Tools**{{%/link%}} in your Catalyst console of your project. You will find your existing iOS package under the Mobile SDK section. Open the package. <br> 2. Click on the required environment tab in the pop-up, then click **Download** to download the configuration file. <br> You can now re-import this downloaded configuration file by following the steps mentioned {{%link href="/en/sdk/ios/v2/setup/#step-2-import-the-configuration-file-in-your-ios-project"%}}here{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} You need not perform the steps 3, 4, 6 given in the SDK setup help page again.{{%/note%}} <br> ### 4. Re-Initialize the SDK You must now re-initialize the SDK to include the newly-downloaded properties in your code. Re-initializing the SDK can be done similar to {{%link href="/en/sdk/ios/v2/setup/#step-5-initialize-the-sdk"%}}initializing the SDK for the first time{{%/link%}}. However, you will now need to specify the {{%badge%}}JWTClientID{{%/badge%}} and {{%badge%}}JWTClientSecret{{%/badge%}} properties obtained from the newly-downloaded configuration file through with {{%badge%}}ZCatalystAppConfiguration{{%/badge%}}. {{%code class="language-bash line-numbers"%}}public func initSDK( window : UIWindow, environment : ZCatalystEnvironment, appConfiguration : ZCatalystAppConfiguration ) throws{{%/code%}} **Parameters:** * {{%badge%}}**window**{{%/badge%}}: The window object that dispatches events to your views * {{%badge%}}**appConfiguration**{{%/badge%}}: An object containing all the configuration details for the functioning of the SDK. * {{%badge%}}**environment**{{%/badge%}}: The environment of your app, either {{%badge%}}**.development**{{%/badge%}} or {{%badge%}}**.production**{{%/badge%}}. The {{%badge%}}environment{{%/badge%}} here indicates if the app is operating in the {{%link href="/en/deployment-and-billing/environments/introduction"%}}Development or the Production{{%/link%}} environment. Similar to including the appropriate plist configuration file based on the environment in your app's project, you must re-initialize the SDK for the appropriate environment. <br> ### 5. Code the User Login Logic for the Third-Party Authentication You can now complete the setup by handling the login logic of the third-party authentication in your iOS app. You must pass the {{%badge%}}customToken{{%/badge%}} or {{%badge%}}jwtToken{{%/badge%}} generated in [step 2](/en/sdk/ios/v2/cloud-scale/authentication/third-party-authentication/#2-set-up-the-third-party-authentication-type-in-catalyst) to the {{%badge%}}handleCustomLogin(){{%/badge%}} method as shown below: {{%code class="language-bash line-numbers"%}}public func handleCustomLogin( withJWT token : String, completion : @escaping ( Error? ) -> Void ){{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} The custom server token will have to be generated every single time the user logs in to your application using a third-party authentication service.{{%/note%}} --- ## SDK — Java — Authentication -------------------------------------------------------------------------------- title: "Add New User" description: "This page describes the method to add new end-users to your Java application using Catalyst Authentication with sample code snippets." last_updated: "2026-03-18T07:41:08.560Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/authentication/add-new-user/" service: "Cloud Scale" related: - Add new user - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) - Catalyst Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Authentication Catalyst Authentication features enable you to add end-users to your Catalyst serverless applications, configure their user accounts and roles, and manage user sign-in and authentication of your application. You can learn about working with Catalyst Authentication from the remote console from the {{%link href="/en/cloud-scale/help/authentication/introduction" %}}Authentication help document{{%/link%}}. ### Add New User When a user has signed up to a Catalyst application, unique identification values like {{%badge%}}ZUID{{%/badge%}} and {{%badge%}}userID{{%/badge%}} are created for them. The user is also assigned to an organization by Catalyst. You can learn more about this from the {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}Users help page{{%/link%}}. You can add a new end-user to your Catalyst application using the code below. The user details such as their email address, last name, the application platform and the role they must be added to, are passed through an instance of the {{%badge%}}ZCSignUpData{{%/badge%}} class. The user registration process is handled by the {{%badge%}}registerUser(){{%/badge%}} method, after obtaining an instance of the {{%badge%}}ZCUser{{%/badge%}} class. {{%note%}} {{%bold class="bold-primary" %}}Note:{{%/bold%}} * You will be able to add only 25 users in your application in the {{%link href="/en/deployment-and-billing/environments/development-environment" %}}development environment{{%/link%}}. After you deploy your application to production, you can include any number of end-users in it. * You must provide the values for {{%badge%}}EmailId{{%/badge%}} and {{%badge%}}FirstName{{%/badge%}} to register a user mandatorily. * You can obtain the {{%badge%}}RoleId{{%/badge%}} from the _Roles_ section in _Authentication_ in the Catalyst console. * When inviting a new user, you can configure the sender's email address, subject and the email message. You must add the email address in the {{%link href="/en/cloud-scale/help/mail/email-configuration/" %}}Catalyst Mail Component{{%/link%}} and get it verified before using it in the SDK code.{{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.users.PlatformType; import com.zc.component.users.ZCSignUpData; import com.zc.component.users.ZCUser; import com.zc.component.ZCMailTemplateDetails; {{% /panel_without_adjustment %}} {{%code class="language-java line-numbers"%}}//Get an instance of ZCSignUpData ZCSignUpData signUpdetails = ZCSignUpData.getInstance(); //Pass the necessary data for the sign-up using the instance ZCMailTemplateDetails mailData= signUpdetails.mailTemplateInstance(); mailData.setSendersMail("docofoh552@lukaat.com"); mailData.setSubject("Welcome to %APP_NAME%"); mailData.setMessage("<p>Hello ,</p> <p>Follow this link to join in %APP_NAME% .</p> <p><a href='\%LINK%\'>%LINK%</a></p> <p>If you didn’t ask to join the application, you can ignore this email.</p> <p>Thanks,</p> <p>Your %APP_NAME% team</p>"); signUpdetails.setTemplateDetails(mailData); signUpdetails.setPlatformType(PlatformType.WEB); signUpdetails.userDetail.setEmailId("p.boyle@zylker.com"); signUpdetails.userDetail.setLastName("Boyle"); signUpdetails.userDetail.setRoleId(1256000000228024L); //Register the user using an instance of ZCUser class signUpdetails = ZCUser.getInstance().registerUser(signUpdetails); {{%/code%}} -------------------------------------------------------------------------------- title: "Get All Org IDs" description: "This page describes the method to collect all the Org IDs associated to your Java application using Catalyst Authentication with sample code snippets." last_updated: "2026-03-18T07:41:08.560Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/authentication/get-org-id/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - User Management (/en/cloud-scale/help/authentication/user-management/users/introduction/) -------------------------------------------------------------------------------- # Get All Org IDs Org ID or {{%badge%}}ZAAID{{%/badge%}} is the unique identification of the organization that an end-user belongs to. This identification is generated when the end-user signs up to your application through any of the {{%link href="/en/cloud-scale/help/authentication/authentication-types/" %}}authentication types{{%/link%}}, gets added through the {{%link href="/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser" %}}Add User API{{%/link%}} or through the {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#adding-a-new-user-from-the-console" %}}Add User button{{%/link%}} in the console. The SDK snippet below demonstrates fetching all the Org IDs generated while adding new users to your application using the {{%badge%}}getAllOrgs(){{%/badge%}} method. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.users.ZCUser; {{% /panel_without_adjustment %}} {{%code class="language-java line-numbers"%}}ZCUser user = ZCUser.getInstance(); user.getAllOrgs(); {{%/code%}} <br /> -------------------------------------------------------------------------------- title: "Add User to Existing Org" description: "This page describes the method to add new end-users to your Java application using Catalyst Authentication with sample code snippets." last_updated: "2026-03-18T07:41:08.560Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/authentication/add-new-user-to-existing-org/" service: "Cloud Scale" related: - Add New User to Existing Org - API (/en/api/code-reference/cloud-scale/authentication/add-user-to-existing-org/#AddaNewUsertoanExistingOrganization) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Add a New User to an Existing Organization The code snippet given below allows registering a {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}user{{%/link%}} to an existing orginization without creating a new organization. {{%note%}} {{%bold class="bold-primary" %}}Note: {{%/bold%}} * {{%badge%}}FirstName{{%/badge%}}, {{%badge%}}EmailId{{%/badge%}} and {{%badge%}}OrgID{{%/badge%}}are mandatory attributes. * When inviting a new user, you can configure the sender's email address, subject and the email message. You must add the email address in the {{%link href="/en/cloud-scale/help/mail/email-configuration/" %}}Catalyst Mail Component{{%/link%}} and get it verified before using it in the SDK code. {{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.users.PlatformType; import com.zc.component.users.ZCSignUpData; import com.zc.component.users.ZCUser; import com.zc.component.ZCMailTemplateDetails; {{% /panel_without_adjustment %}} {{%code class="language-java line-numbers"%}}//Get an instance of ZCSignUpData ZCSignUpData signUpdetails = ZCSignUpData.getInstance(); //Pass the necessary data for the sign-up using the instance ZCMailTemplateDetails mailData= signUpdetails.mailTemplateInstance(); mailData.setSendersMail("docofoh552@lukaat.com"); mailData.setSubject("Welcome to %APP_NAME%"); mailData.setMessage("<p>Hello ,</p> <p>Follow this link to join in %APP_NAME% .</p> <p><a href='\%LINK%\'>%LINK%</a></p> <p>If you didn’t ask to join the application, you can ignore this email.</p> <p>Thanks,</p> <p>Your %APP_NAME% team</p>"); signUpdetails.setTemplateDetails(mailData); signUpdetails.setPlatformType(PlatformType.WEB); signUpdetails.userDetail.setEmailId("amelia.burrows@zylker.com"); signUpdetails.userDetail.setLastName("Amelia"); signUpdetails.userDetail.setOrgId("35712181"); //Pass user's OrgID here //Register the user using signUpdetails signUpdetails = ZCUser.getInstance().addUser(signUpdetails); {{%/code%}} -------------------------------------------------------------------------------- title: "Get All Users in an Organization" description: "This page describes the method to add get all the users associated to an organization in your Java application using Catalyst Authentication with sample code snippets." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/authentication/get-users-in-org/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - User Management (/en/cloud-scale/help/authentication/user-management/users/introduction/) -------------------------------------------------------------------------------- # Get All Users in an Organization The SDK snippet below demonstrates fetching the list of all users of an organization using the {{%badge%}}getAllUsers(){{%/badge%}} method. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.users.ZCUser; {{% /panel_without_adjustment %}} {{%code class="language-java line-numbers"%}}ZCUser user = ZCUser.getInstance(); user.getAllUser(10062701096); // Enter your Org ID here {{%/code%}} -------------------------------------------------------------------------------- title: "Reset Password" description: "This page describes the method to add new end-users to your Java application using Catalyst Authentication with sample code snippets." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/authentication/reset-password/" service: "Cloud Scale" related: - Reset Password - API (/en/api/code-reference/cloud-scale/authentication/reset-user-password/#ResetUserPassword) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Reset Password After the successful registration of a {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}user{{%/link%}}, you can reset the password using the following code snippet. When called, the {{%badge%}}resetPassword(){{%/badge%}} method generates a reset password link and sends it to the user's Email address. {{%note%}} {{%bold class="bold-primary" %}}Note: {{%/bold%}} You can configure the sender's email address, subject and the email message. You must add the email address in the {{%link href="/en/cloud-scale/help/mail/email-configuration/" %}}Catalyst Mail Component{{%/link%}} and get it verified before using it in the SDK code. {{%/note%}} #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.users.PlatformType; import com.zc.component.users.ZCSignUpData; import com.zc.component.users.ZCUser; import com.zc.component.ZCMailTemplateDetails; {{% /panel_without_adjustment %}} {{%code class="language-java line-numbers"%}}//Get an instance of ZCSignUpData ZCSignUpData signUpdetails = ZCSignUpData.getInstance(); //Pass the necessary data for the sign-up using the instance ZCMailTemplateDetails mailData= signUpdetails.mailTemplateInstance(); mailData.setSendersMail("docofoh552@lukaat.com"); mailData.setSubject("Welcome to %APP_NAME%"); mailData.setMessage("<p>Hello ,</p> <p>Follow this link to join in %APP_NAME% .</p> <p><a href='\%LINK%\'>%LINK%</a></p> <p>If you didn’t ask to join the application, you can ignore this email.</p> <p>Thanks,</p> <p>Your %APP_NAME% team</p>"); signUpdetails.setTemplateDetails(mailData); signUpdetails.setPlatformType(PlatformType.WEB); signUpdetails.userDetail.setEmailId("amelia.burrows@zylker.com"); signUpdetails.userDetail.setLastName("Burrows"); //Call reset password to send a mail to reset password ZCUser.getInstance().resetPassword(signUpdetails); {{%/code%}} -------------------------------------------------------------------------------- title: "Generate a Custom Server Token" description: "This page describes the method to add new end-users to your Java application using Catalyst Authentication with sample code snippets." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/authentication/third-party-server-token/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Generate a Custom Server Token Cloud Scale's Authentication component allows you to implement a {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/" %}}third-party authentication service{{%/link%}} of your preference for your Catalyst application. The authorization and validation of the end-user is handled by the third-party service, and the data is passed on to Catalyst. {{%note%}}{{%bold%}}Note:{{%/bold%}} * Since you are implementing a third-party authentication service, it is understood that the security infrastructure of your application is contingent on the efficiency of the third-party service that you have chosen. * To enable a third-party authentication in your Catalyst application, you must ensure that you have enabled {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup{{%/link%}} in the console.{{%/note%}} When a user is re-directed from a third-party service after being authenticated, their credentials must be passed to an authentication function that you code. This function must include the Catalyst server-side logic to generate a custom server token, which will then be passed to the Web SDK incorporated in the client code. A sample code to generate a custom server token is given below. #### Sample Code Snippet {{%code class="language-java line-numbers"%}}ZCCustomTokenDetails customTokenDetails = ZCCustomTokenDetails.getInstance(); ZCCustomTokenUserDetails tokenUserDetails = ZCCustomTokenUserDetails.getInstance(); //Set token user details tokenUserDetails.setEmailId("emma@zylker.com"); tokenUserDetails.setFirstName("Amelia"); tokenUserDetails.setLastName("Burrows"); tokenUserDetails.setRoleName("App Admin"); customTokenDetails.setUserDetails(tokenUserDetails); ZCCustomTokenResponse customTokenResp = ZCUser.getInstance().generateCustomToken(customTokenDetails); {{%/code%}} You can now pass this token to the client logic as explained in this {{%link href="/en/sdk/web/v4/cloud-scale/authentication/third-party-custom-token/" %}}Web SDK help page{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} The custom server token will have to be generated every single time the user logs in to your application using a third-party authentication service.{{%/note%}} -------------------------------------------------------------------------------- title: "Custom User Validation" description: "This page describes the method to add new end-users to your Java application using Catalyst Authentication with sample code snippets." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/authentication/custom-user-validation/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Custom User Validation Catalyst Authentication allows you to authorize and validate your end-users using a custom {{%link href="/en/serverless/help/functions/basic-io/" %}}Basic I/O function{{%/link%}} 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. A sample code for a {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction/" %}}Custom User Validation{{%/link%}} function is given below. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.catalyst.Context; import com.catalyst.basic.BasicIO; import com.catalyst.basic.ZCFunction; import com.zc.api.APIConstants.ZCSignupValidationStatus; import com.zc.common.ZCProject; import com.zc.component.auth.ZCSignupResponseUserDetails; import com.zc.component.auth.ZCSignupUserValidationRequest; import com.zc.component.auth.ZCSignupUserValidationResponse; import com.zc.component.users.ZCSignupUserService; {{% /panel_without_adjustment %}} The validation logic can be set based on your preference. In this example, we have depicted the logic with {{%badge%}}@notallowedemail{{%/badge%}}. If the user tries to sign up using a disallowed email addressed, the user will not be allowed to sign up. {{%code class="language-java line-numbers"%}}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) { /* Validation logic starts */ LOGGER.info("Inside null check"); ZCSignupUserValidationResponse validationResponse = ZCSignupUserValidationResponse.getInstance(); if(requestDetails.getUserDetails().getEmailId().contains("@notallowedmail")) { validationResponse.setStatus(ZCSignupValidationStatus.FAILURE); // The user has failed authentication } else { validationResponse.setStatus(ZCSignupValidationStatus.SUCCESS); // The actions that occur in the event of a successful authentication can be customized ZCSignupResponseUserDetails respUserDetails = ZCSignupResponseUserDetails.getInstance(); respUserDetails.setFirstName("Patricial"); respUserDetails.setLastName("Boyle"); respUserDetails.setRoleIdentifier("App User"); respUserDetails.setOrgId("1241113"); validationResponse.setUserDetails(respUserDetails); } basicIO.write(validationResponse); /* Validation logic ends */ } } catch(Exception e) { basicIO.write(e); LOGGER.log(Level.SEVERE,"Exception in MainClass",e); basicIO.setStatus(500); } } }{{%/code%}} <br> To test this function, you can pass the details of the user in the following {{%badge%}}.JSON{{%/badge%}} format: {{%code class="language-json line-numbers"%}}{ "request_type": "add_user", "request_details": { "user_details": { "email_id": "emmy@zylker.com", "first_name": "Emma", "last_name": "Thompson", "org_id": "65**************", "role_details": { "role_name": "Moderator", "role_id": "10*****" } }, "auth_type": "web" } }{{%/code%}} -------------------------------------------------------------------------------- title: "Get User Details" description: "This page describes the method to add new end-users to your Java application using Catalyst Authentication with sample code snippets." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/authentication/get-user-details/" service: "Cloud Scale" related: - Get User Details - API (/en/api/code-reference/cloud-scale/authentication/get-current-user/#GetCurrentUser) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Get User Details {{%link href="/en/cloud-scale/help/authentication/introduction" %}}Catalyst Authentication{{%/link%}} provides some variants to retrieve the details of the app users. It is possible to obtain the user information of the current user, any, or all users of the application. ### Get Current User Details This code fetches the details of an user on whose scope the function is getting executed. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; {{% /panel_without_adjustment %}} {{%code class="language-java"%}}//Create an instance of the ZCUser object to get current user information ZCUserDetail details = ZCUser.getInstance().getCurrentUser(); {{%/code%}} ### Get All User Details This code can fetch the details of all the users who are registered with the application. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; {{% /panel_without_adjustment %}} {{%code class="language-java"%}}//Create an instance of ZCUser and call getAllUser to get all the users in the application List&lt;ZCUserDetail&gt; details = ZCUser.getInstance().getAllUser(); {{%/code%}} ### Get User Details by User ID Unlike the previous code, when you want to retrieve the information of a particular user, you can use this code where the User ID of the user is passed as a parameter to the {{%badge%}}getUser(){{%/badge%}} method. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; {{% /panel_without_adjustment %}} {{%code class="language-java"%}}//Create an instance of the ZCUser object and use user id to get user information based on id ZCUserDetail details = ZCUser.getInstance().getUser(1510000000113214L); {{%/code%}} -------------------------------------------------------------------------------- title: "Update Details of a User" description: "This page describes the method to modify or update a user's details signed up to your Java application using Catalyst Authentication with sample code snippets." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/authentication/update-user-details/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Modify a User's Details in the Console (/en/cloud-scale/help/authentication/user-management/users/implementation/#modify-a-users-details) -------------------------------------------------------------------------------- # Update Details of a User Catalyst allows you to {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#modify-a-users-details" %}}modify and update{{%/link%}} the following details of an end-user: * First Name * Last name * {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}{{%badge%}}**ZAAID**{{%/badge%}}{{%/link%}}: {{%badge%}}**ZAAID**{{%/badge%}} or Org ID, is a unique value that is generated by Catalyst to associate with an organization. * {{%link href="/en/cloud-scale/help/authentication/user-management/roles/implementation/" %}}RoleID{{%/link%}}: Role ID is the value generated by Catalyst that is assigned to a particular {{%link href="/en/cloud-scale/help/authentication/user-management/roles/introduction/" %}}user role{{%/link%}}. The SDK snippet below demonstrates updating an end-user's details using the {{%badge%}}updateUser(){{%/badge%}} method. The first name of the user is updated in the example below. The {{%badge%}}getUserID(){{%/badge%}} method will fetch the {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}User ID{{%/link%}} of the user. The UserID will be present in the *Users* > *User Management* section of the Authentication component. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; {{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCUser user = ZCUser.getInstance(); ZCUserDetail userDetail = user.getCurrentUser(); userDetail.setFirstName("Josh"); user.updateUser(userDetail.getUserId(), userDetail); {{%/code%}} <br /> -------------------------------------------------------------------------------- title: "Enable or Disable a User" description: "This page describes the method to enable or disable a user in your Java application using Catalyst Authentication with sample code snippets." last_updated: "2026-03-18T07:41:08.561Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/authentication/enable-disable-user/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Enable or Disable a User in the Console (/en/cloud-scale/help/authentication/user-management/users/implementation/#enable-or-disable-a-user) -------------------------------------------------------------------------------- # Enable or Disable a User Catalyst allows you to {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#enable-or-disable-a-user" %}}disable or enable a user{{%/link%}} at any time. A disabled user will still be listed in the *Users* section in your project, but will not be able to access your application. The SDK snippet below demonstrates enabling and disabling an end-user using the {{%badge%}}updateUserStatus(){{%/badge%}} method. The user is referred by their unique {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}User ID{{%/link%}}. You can find the User IDs of all users by navigating to the *Users* > {{%link href="/en/cloud-scale/help/authentication/user-management/introduction/" %}}*User Management*{{%/link%}} section of the Authentication component. ### To Enable a User #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; {{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCUser user = ZCUser.getInstance(); user.updateUserStatus(USER_ID, USER_STATUS.ENABLE); {{%/code%}} ### To Disable a User #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.ZCUserDetail; import com.zc.component.users.ZCUser; {{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCUser user = ZCUser.getInstance(); user.updateUserStatus(USER_ID, USER_STATUS.DISABLE); {{%/code%}} <br /> -------------------------------------------------------------------------------- title: "Delete User" description: "This page describes the method to delete users from your Java application with sample code snippets." last_updated: "2026-03-18T07:41:08.562Z" source: "https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/authentication/delete-user/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Delete User You can delete the {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}} end users{{%/link%}} of a Catalyst application to remove their access to it permanently. This is done using the {{%badge%}}deleteUser(){{%/badge%}} method. You must pass the {{%bold%}}UserID{{%/bold%}} of the user as the parameter to this method as shown below. #### Sample Code Snippet <br> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import com.zc.component.users.ZCUser; {{% /panel_without_adjustment %}} {{%code class="language-java"%}}ZCUser.getInstance().deleteUser(1510000000109587l); //Pass the UserID of the user to be deleted {{%/code%}} --- ## SDK — Node JS — Authentication -------------------------------------------------------------------------------- title: "Get Authentication Instance" description: "This page describes the method to create a component instance in your NodeJS application with sample code snippets.." last_updated: "2026-03-18T07:41:08.563Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/get-component-instance/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Authentication {{%link href="/en/cloud-scale/help/authentication/introduction" %}}Catalyst Authentication{{%/link%}} features in Node.js SDK enable you to add end-users to your Catalyst serverless applications, fetch user details, manage their passwords, or delete them permanently. You can perform additional configurations on user accounts and roles, and manage the authentication of your application from the remote console. ### Get a Component Instance You can create a {{%badge%}}userManagement{{%/badge%}} component reference as shown below. This will not fire a server-side call. We will refer to this component instance in various code snippets of working with Authentication. {{%code class="language-javascript"%}}//Get a UserManagement Instance let userManagement = app.userManagement();{{%/code%}} -------------------------------------------------------------------------------- title: "Add New User" description: "This page describes the method to add new end-users to your NodeJS application with sample code snippets." last_updated: "2026-03-18T07:41:08.563Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/add-new-user/" service: "Cloud Scale" related: - Add new user - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Add New User You can add {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}end users{{%/link%}} to your Catalyst serverless applications, fetch their details, or manage their accounts easily. When a user has signed up to a Catalyst application, unique identification values like ZUID and User ID are created for them. The user is also assigned to an organization automatically in this method. #### Create a JSON Configuration Before you add a new end-user to your Catalyst application, you must create a JSON object that contains the registration details of a particular user, such as their email address, last name, the application platform and the role they must be added to, as shown below. You can then pass the configuration to the user registration method. {{%note%}}{{%bold class="bold-primary" %}}Note:{{%/bold%}} * You must provide the values for {{%badge%}}email_id{{%/badge%}} and {{%badge%}}first_name{{%/badge%}} to register a user mandatorily. * You can obtain the {{%badge%}}role_id{{%/badge%}} from the _Roles_ section in _Authentication_ in the Catalyst console.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}//Create a JSON object for adding a new user const signupConfig = { platform_type: 'web', template_details: { senders_mail:'dogogetu@tutuapp.bid', subject:'Welcome to %APP_NAME% ', message:'&lt;p&gt;Hello ,&lt;/p&gt; &lt;p&gt;Follow this link to join in %APP_NAME% .&lt;/p&gt; &lt;p&gt; &lt;a href=\'%LINK%\'&gt;%LINK%&lt;/a&gt; &lt;/p&gt; &lt;p&gt;If you did not ask to join the application, you can ignore this email.&lt;/p&gt; &lt;p&gt;Thanks,&lt;/p&gt; &lt;p&gt;Your %APP_NAME% team&lt;/p&gt;' }, redirect_url: 'home.html' // The user will be directed to this page once they are authenticated. You can also provide mapped custom domains you configured as your invite URL. }; var userConfig = { first_name: 'Dannie', last_name: 'Boyle', email_id: 'p.boyle@zylker.com', role_id : '3376000000159024' };{{% /code%}} ### Add a New User You can now add a new end-user to your Catalyst application using the code below. You must pass the JSON objects you created in the previous section as arguments to the {{%badge%}}registerUser(){{%/badge%}} method. The {{%badge%}}registerUser(){{%/badge%}} method handles the user sign-up process and returns a promise. This promise will be resolved to a JSON object. The {{%badge%}}userManagement{{%/badge%}} reference used below is defined in the {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/get-component-instance" %}}component instance page{{%/link%}}. {{%note%}}{{%bold class="bold-primary" %}}Note :{{%/bold%}} You will be able to add only 25 users in your application in the {{%link href="/en/deployment-and-billing/environments/development-environment" %}}development environment{{%/link%}}. After you deploy your application to production, you can include any number of end-users in it.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}let userManagement = app.userManagement(); let registerPromise = userManagement.registerUser(signupConfig, userConfig); //Pass the JSON configration to the method registerPromise.then(userDetails =&gt; { //Returns a promise console.log(userDetails); });{{% /code%}} A sample response that you will receive for each version is shown below: {{% panel_with_select header="Node JS" %}} {{% divtag id="V2" class="language-javascript line-numbers"%}} { zaid: "1005634498", user_details: { zuid: "1005641290", zaaid: "1005641456", org_id: "1005641456", status: "ACTIVE", is_confirmed: false, email_id: "p.boylie@zylker.com", first_name: "Dannie", last_name: "Boyle", created_time: "Aug 12, 2021 12:33 PM", modified_time: "Aug 12, 2021 12:33 PM", invited_time: "Aug 12, 2021 12:33 PM", role_details: { role_name: "App User", role_id: "2305000000006024" }, user_type: "App User", user_id: "2305000000007752", project_profiles: [] }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type: "web", org_id: null }{{% /divtag %}} {{% divtag id="V1" class="language-json line-numbers"%}} { zaid: 1005634498, user_details: { zuid: 1005641433, zaaid: 1005641434, org_id: 1005641434, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", first_name: "Dannie", created_time: "Aug 12, 2021 12:27 PM", modified_time: "Aug 12, 2021 12:27 PM", invited_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000007745, project_profiles: [] }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type: "web", org_id: null }{{% /divtag %}} {{% /panel_with_select %}} -------------------------------------------------------------------------------- title: "Get All Org IDs" description: "This page describes the method to add get all the Org IDs associated with the users signed to your NodeJS application with sample code snippets." last_updated: "2026-03-18T07:41:08.563Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/get-org-id/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - User Management (/en/cloud-scale/help/authentication/user-management/users/introduction/) -------------------------------------------------------------------------------- # Get All Org IDs Org ID or {{%badge%}}ZAAID{{%/badge%}} is the unique identification of the organization that an end-user belongs to. This identification is generated when the end-user signs up to your application through any of the {{%link href="/en/cloud-scale/help/authentication/authentication-types/" %}}authentication types{{%/link%}}, gets added through the {{%link href="/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser" %}}Add User API{{%/link%}} or through the {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#adding-a-new-user-from-the-console" %}}Add User button{{%/link%}} in the console. The SDK snippet below demonstrates fetching all the Org IDs generated while adding new users to your application using the {{%badge%}}getAllOrgs(){{%/badge%}} method: {{%code class="language-javascript" scroll="set-scroll" %}}const userManagement = app.userManagement(); userManagement.getAllOrgs(){{%/code%}} -------------------------------------------------------------------------------- title: "Add User to Existing Org" description: "This page describes the method to add a new user to the existing organisation in your NodeJS application with sample code snippets." last_updated: "2026-03-18T07:41:08.563Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/add-new-user-to-existing-org/" service: "Cloud Scale" related: - Add new user to existing org - API (/en/api/code-reference/cloud-scale/authentication/add-user-to-existing-org/#AddaNewUsertoanExistingOrganization) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Add New User to an Existing Organization You can add an end-user to an existing organization without creating a new organization for them. This can be done by providing the {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}**OrgID**{{%/link%}} of the organization that the user must be added to. The organization of a user cannot be changed later, once it is associated with their account. When the user has signed up, unique identification values such as {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}ZUID and User ID{{%/link%}} are created for them. {{%note%}}{{%bold class="bold-primary" %}}{{%/bold%}} * You must provide the values for {{%badge%}}OrgID{{%/badge%}}, {{%badge%}}email_id{{%/badge%}}, {{%badge%}}first_name{{%/badge%}} mandatorily to add a user to an existing organization. * You can also add them to a role by providing the {{%badge%}}role_id{{%/badge%}}, which you can obtain from the Roles section in Authentication in the Catalyst console. * When inviting a new user, you can configure the sender's email address, subject and the email message. You must add the email address in the {{%link href="/en/cloud-scale/help/mail/email-configuration/" %}}Catalyst Mail Component{{%/link%}} and get it verified before using it in the SDK code.{{%/note%}} ### Create a JSON Configuration Before you add a new end-user to your Catalyst application, you must create a JSON object that contains the registration details of a particular user as shown below. You can then pass the configuration to the user registration method. {{%code class="language-javascript" scroll="set-scroll" %}}//Create a JSON object for adding a new user to an existing org const signupConfig = { platform_type: 'web', template_details: { 'senders_mail':'dogogetu@tutuapp.bid', 'subject':'Welcome to %APP_NAME% ', 'message':'&lt;p&gt;Hello ,&lt;/p&gt; &lt;p&gt;Follow this link to join in %APP_NAME% .&lt;/p&gt; &lt;p&gt;&lt;a href=\'%LINK%\'&gt;%LINK%&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you didn’t ask to join the application, you can ignore this email.&lt;/p&gt; &lt;p&gt;Thanks,&lt;/p&gt; &lt;p&gt;Your %APP_NAME% team&lt;/p&gt;' }}; var userConfig = { first_name: 'Amelia', last_name: 'Burrows', email_id: 'emma@zylker.com', org_id: 10014774358 };{{%/code%}} ### Add a New User to Existing Org You can now add a new end-user to an existing organization using the code below. You must pass the JSON objects you created in the previous section as arguments to the {{%badge%}}addUserToOrg(){{%/badge%}} method. This method handles the user sign-up process and returns a promise. This promise will be resolved to a JSON object. The {{%badge%}}userManagement{{%/badge%}} reference used in the code is the {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/get-component-instance/" %}}component instance{{%/link%}} created earlier. {{%note%}}{{%bold class="bold-primary" %}}{{%/bold%}} You will be able to add only 25 users in your application in the {{%link href="/en/deployment-and-billing/environments/development-environment" %}}development environment{{%/link%}}. After you deploy your application to production, you can include any number of end-users in it.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}let userManagement = app.userManagement(); let addUserPromise = userManagement.addUserToOrg(signupConfig, userConfig); //Pass the JSON configurations to the method addUserPromise.then(addedUser => { //Returns a promise console.log(addedUser); });{{%/code%}} A sample response that you will receive for each version is shown below: {{% panel_with_select header="Node JS" %}} {{% divtag id="V2" class="language-javascript line-numbers"%}} { zaid: "1005634498", user_details: { zuid: "1005643749", org_id: "10014774358", status: "ACTIVE", is_confirmed: false, email_id: "emma@zylker.com", first_name: "Amelia", last_name: "Burrows", created_time: "Aug 12, 2021 03:56 PM", modified_time: "Aug 12, 2021 03:56 PM", invited_time: "Aug 12, 2021 03:56 PM", role_details: { role_name: "App User", role_id: "2305000000006024" }, user_type: "App User", user_id: "2305000000009002", project_profiles: [] }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type: "web", org_id: null } {{% /divtag %}} {{% divtag id="V1" class="language-javascript line-numbers"%}} { zaid: 1005634498, user_details: { zuid: 1005643930, org_id: "10014774358", status: "ACTIVE", is_confirmed: false, email_id: "emma@zylker.com", first_name: "Amelia", last_name: "Burrows", created_time: "Aug 12, 2021 04:05 PM", modified_time: "Aug 12, 2021 04:05 PM", invited_time: "Aug 12, 2021 04:05 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000009004, project_profiles: [] }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type: "web", org_id: null } {{% /divtag %}} {{% /panel_with_select %}} -------------------------------------------------------------------------------- title: "Get All Users in an Organization" description: "This page describes the method to add a new user to the existing organisation in your NodeJS application with sample code snippets." last_updated: "2026-03-18T07:41:08.564Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/get-users-in-org/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - User Management (/en/cloud-scale/help/authentication/user-management/users/introduction/) -------------------------------------------------------------------------------- # Get All Users in an Organization The SDK snippet below demonstrates fetching the list of all users assigned to an organization using the {{%badge%}}getAllUsers(Org ID){{%/badge%}} method. {{%code class="language-javascript" scroll="set-scroll" %}}const userManagement = app.userManagement(); userManagement.getAllUsers('10062701096'); // Enter your Org ID here{{%/code%}} -------------------------------------------------------------------------------- title: "Reset Password" description: "This page describes the method to reset the password of a user account in your NodeJS application with sample code snippets." last_updated: "2026-03-18T07:41:08.564Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/reset-password/" service: "Cloud Scale" related: - Reset password - API (/en/api/code-reference/cloud-scale/authentication/reset-user-password/#ResetUserPassword) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Reset Password After the successful registration of a user, you can reset the password using the following code snippet. While calling the {{%badge%}}resetPassword(){{%/badge%}} method, a reset password link will be generated and sent to the user's Email address. The {{%badge%}}userManagement{{%/badge%}} reference used in the below code snippet is the {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/get-component-instance" %}}component instance{{%/link%}}. {{%note%}}{{%bold class="bold-primary" %}}Note: {{%/bold%}} * **EmailID** and **Platform type** are the mandatory attributes. * You can configure the sender's email address, subject and the email message. You must add the email address in the {{%link href="/en/cloud-scale/help/mail/email-configuration/" %}}Catalyst Mail Component{{%/link%}} and get it verified before using it in the SDK code. {{%/note%}} ### Create a Configuration JSON JSON objects containing the registration details of a particular user is created as given below, {{%code class="language-javascript" scroll="set-scroll" %}}//Create Config Object for the user const signupConfig = { platform_type: 'web', zaid: 10014774358, template_details: { 'senders_mail':'dogogetu@tutuapp.bid', 'subject':'Welcome to %APP_NAME% ', 'message':'&lt;p&gt;Hello ,&lt;/p&gt; &lt;p&gt;Follow this link to join in %APP_NAME% .&lt;/p&gt; &lt;p&gt;&lt;a href=\'%LINK%\'&gt;%LINK%&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you didn’t ask to join the application, you can ignore this email.&lt;/p&gt; &lt;p&gt;Thanks,&lt;/p&gt; &lt;p&gt;Your %APP_NAME% team&lt;/p&gt;' } }; var userConfig = { first_name: 'A', last_name: 'B', email_id: 'amelia.burrows@zylker.com' };{{% /code%}} ### Reset the Password These objects are passed as arguments to the {{%badge%}}registerUser(){{%/badge%}} method which returns a promise. The promise returned will be resolved to an object which is a JSON. {{%code class="language-javascript" scroll="set-scroll" %}}const userManagement = app.userManagement(); let users = await userManagement.resetPassword('amelia.b@zylker.com', { 'platform_type': 'web', 'redirect_url': 'https://www.google.com', 'template_details': { 'subject': 'Reset Password', 'message': 'Click on the link to reset your password: <a href="{{reset_password_url}}">Reset Password</a>', 'senders_mail': 'support@zylker.com' } }); console.log(users);{{%/code%}} -------------------------------------------------------------------------------- title: "Generate a Custom Server Token" description: "This page describes the method to delete users from your NodeJS application with sample code snippets." last_updated: "2026-03-18T07:41:08.564Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Generate a Custom Server Token Cloud Scale's Authentication component allows you to implement a {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/" %}}third-party authentication service{{%/link%}} of your preference for your Catalyst application. The authorization and validation of the end-user is handled by the third-party service, and the data is passed on to Catalyst. {{%note%}}{{%bold%}}Note:{{%/bold%}} * Since you are implementing a third-party authentication service, it is understood that the security infrastructure of your application is contingent on the efficiency of the third-party service that you have chosen. * To enable a third-party authentication in your Catalyst application, you must ensure that you have enabled {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup{{%/link%}} in the console.{{%/note%}} When a user is re-directed from a third-party service after being authenticated, their credentials must be passed to an authentication function that you code. This function must include the Catalyst server-side script to generate a custom server token, which will then be passed to the Web SDK incorporated in the client code. {{%code class="language-javascript"%}}const userManagement = catalystApp.userManagement(); userManagement.generateCustomToken({ type:'web', user_details:{ email_id: "${email_id}", first_name: "${first_name}", last_name: "${last_name}", org_id: "${org_id}", phone_number: "${phone_number}", country_code: "${country_code}", role_name: "${role_name}" } });{{%/code%}} You can now pass this token to the client logic as explained in this {{%link href="/en/sdk/web/v4/cloud-scale/authentication/third-party-custom-token/" %}}Web SDK help page{{%/link%}}. {{%note%}}{{%bold%}}Note :{{%/bold%}} The custom server token will have to be generated every single time the user logs in to your application using a third-party authentication service.{{%/note%}} -------------------------------------------------------------------------------- title: "Custom User Validation" description: "This page describes the method to delete users from your NodeJS application with sample code snippets." last_updated: "2026-03-18T07:41:08.564Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/custom-user-validation/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Custom User Validation Catalyst Authentication allows you to authorize and validate your end-users using a custom {{%link href="/en/serverless/help/functions/basic-io/" %}}Basic I/O function{{%/link%}} 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. A sample code for a {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction/" %}}Custom User Validation{{%/link%}} function is given below. {{%code class="language-javascript line-numbers"%}}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('zylker.com')) { 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'//If you are providing the Org ID, make sure it is copied exactly from the console. } })) } } context.close(); }{{%/code%}} To test this function, you can pass the details of the user in the following {{%badge%}}.JSON{{%/badge%}} format: {{%code class="language-json line-numbers"%}}{ "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" } }{{%/code%}} -------------------------------------------------------------------------------- title: "Get User Details" description: "This page describes the method to fetch user details from the Data Store in your NodeJS application with sample code snippets." last_updated: "2026-03-18T07:41:08.564Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/get-user-details/" service: "Cloud Scale" related: - Get user details - API (/en/api/code-reference/cloud-scale/authentication/get-specific-user/#GetSpecificUser) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Get User Details Catalyst Authentication provides some methods to retrieve the details of the {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}application users{{%/link%}}. You can obtain the user information of the current user, any user, or all users of the application. ### Get Details of Current User The method {{%badge%}}getCurrentUser(){{%/badge%}} fetches the details of a user on whose scope the function is getting executed. The {{%badge%}}userManagement{{%/badge%}} reference used in the code snippets is the {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/get-component-instance" %}}component instance{{%/link%}} created earlier. The promise returned here will be resolved to a JSON object. {{%code class="language-javascript" scroll="set-scroll" %}}// get the details of the current user as a promise let userManagement = app.userManagement(); let userPromise = userManagement.getCurrentUser(); userPromise.then(currentUser => { console.log(currentUser); });{{% /code%}} A sample response that you will receive for each version is shown below: {{% panel_with_select header="Node JS" %}} {{% divtag id="V2" class="language-javascript line-numbers"%}} { zuid: "1005641433", zaaid: "1005641434", org_id: "1005641434", status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: "2305000000006024" }, user_type: "App User", user_id: "2305000000007745", locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } {{% /divtag %}} {{% divtag id="V1" class="language-javascript line-numbers"%}} { zuid: 1005641433, zaaid: 1005641434, org_id: 1005641434, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000007745, locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } {{% /divtag %}} {{% /panel_with_select %}} ### Get User Details by User ID You can retrieve the details of a particular user by passing the User ID of the user to the {{%badge%}}getUserDetails(){{%/badge%}} method. The promise is resolved to a JSON object. {{%code class="language-javascript" scroll="set-scroll" %}}//Get a single user's details by passing the user ID let userManagement = app.userManagement(); let userPromise = userManagement.getUserDetails(1510000000109587); userPromise.then(userDetails => { console.log(userDetails); }); {{% /code%}} A sample response that you will receive for each version is shown below: {{% panel_with_select header="Node JS" %}} {{% divtag id="V2" class="language-javascript line-numbers"%}} { zuid: "1005665160", zaaid: "1005665245", org_id: "1005665245", status: "ACTIVE", is_confirmed: false, email_id: "mikerogers@zylker.com ", last_name: "Rogers", created_time: "Aug 17, 2021 04:55 PM", role_details: { role_name: "App User", role_id: "2136000000007748" }, user_type: "App User", user_id: "2136000000020040", locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } {{% /divtag %}} {{% divtag id="V1" class="language-javascript line-numbers"%}} { zuid: 1005665160, zaaid: 1005665245, org_id: 1005665245, status: "ACTIVE", is_confirmed: false, email_id: "mikerogers@zylker.com", last_name: "Rogers", created_time: "Aug 17, 2021 04:55 PM", role_details: { role_name: "App User", role_id: 2136000000007748 }, user_type: "App User", user_id: 2136000000020040, locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } {{% /divtag %}} {{% /panel_with_select %}} ### Get Details of All Users The {{%badge%}}getAllUsers(){{%/badge%}} method can fetch the details of all the users who are registered with the application. The promise returned here will be resolved to an array of objects which contains all user details. {{%code class="language-javascript" scroll="set-scroll" %}}//Get details of all users let userManagement = app.userManagement(); let allUserPromise = userManagement.getAllUsers(); allUserPromise.then(allUserDetails => { console.log(allUserDetails); }); {{% /code%}} A sample response that you will receive for each version is shown below: {{% panel_with_select header="Node JS" %}} {{% divtag id="V2" class="language-javascript line-numbers" %}} [ { zuid: "1005648252", zaaid: "1005648253", org_id: "1005648253", status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 13, 2021 01:36 PM", modified_time: "Aug 13, 2021 01:36 PM", invited_time: "Aug 13, 2021 01:36 PM", role_details: { role_name: "App User", role_id: "2136000000007748" }, user_type: "App User", user_id: "2136000000007774", locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] }, { zuid: "1005665160", zaaid: "1005665245", org_id: "1005665245", status: "ACTIVE", is_confirmed: false, email_id: "rsmith@zylker.com ", last_name: "Smith", created_time: "Aug 17, 2021 04:55 PM", modified_time: "Aug 17, 2021 04:55 PM", invited_time: "Aug 17, 2021 04:55 PM", role_details: { role_name: "App User", role_id: "2136000000007748" }, user_type: "App User", user_id: "2136000000020040", locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } ] {{% /divtag %}} {{% divtag id="V1" class="language-javascript line-numbers"%}} [ { zuid: 1005648252, zaaid: 1005648253, org_id: 1005648253, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 13, 2021 01:36 PM", modified_time: "Aug 13, 2021 01:36 PM", invited_time: "Aug 13, 2021 01:36 PM", role_details: { role_name: "App User", role_id: 2136000000007748 }, user_type: "App User", user_id: 2136000000007774, locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] }, { zuid: 1005665160, zaaid: 1005665245, org_id: 1005665245, status: "ACTIVE", is_confirmed: false, email_id: "rsmith@zylker.com", last_name: "Smith", created_time: "Aug 17, 2021 04:55 PM", modified_time: "Aug 17, 2021 04:55 PM", invited_time: "Aug 17, 2021 04:55 PM", role_details: { role_name: "App User", role_id: 2136000000007748 }, user_type: "App User", user_id: 2136000000020040, locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } ] {{% /divtag %}} {{% /panel_with_select %}} -------------------------------------------------------------------------------- title: "Update User Details" description: "This page describes the method to update an end-users details in your NodeJS application with sample code snippets." last_updated: "2026-03-18T07:41:08.565Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/update-user-details/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Modify a User's Details in the Console (/en/cloud-scale/help/authentication/user-management/users/implementation/#modify-a-users-details) -------------------------------------------------------------------------------- # Update User Details Catalyst allows you to {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#modify-a-users-details" %}}modify and update{{%/link%}} the following details of an end-user: * First Name * Last name * {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}{{%badge%}}**ZAAID**{{%/badge%}}{{%/link%}}: {{%badge%}}**ZAAID**{{%/badge%}} or Org ID, is a unique value that is generated by Catalyst to associate with an organization. * {{%link href="/en/cloud-scale/help/authentication/user-management/roles/implementation/" %}}RoleID{{%/link%}}: Role ID is the value generated by Catalyst that is assigned to a particular {{%link href="/en/cloud-scale/help/authentication/user-management/roles/introduction/" %}}user role{{%/link%}}. The SDK snippet below demonstrates updating an end-user’s details using the {{%badge%}}updateUserDetails(userID, userDetails){{%/badge%}} method. The first name of the user is updated in the example below. {{%code class="language-javascript line-numbers"%}}const userManagement = app.userManagement(); userManagement.updateUserDetails('13749831', { email_id: 'emma@zylker.com', last_name: 'Burrows', zaaid: '1483013413294234', role_id: '843974989234859', first_name: 'Amelia' });{{%/code%}} <br /> -------------------------------------------------------------------------------- title: "Enable or Disable a User" description: "This page describes the method to enable or disable a user in your NodeJS application with sample code snippets." last_updated: "2026-03-18T07:41:08.565Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/enable-disable-user/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) - Enable or Disable a User in the Console (/en/cloud-scale/help/authentication/user-management/users/implementation/#enable-or-disable-a-user) -------------------------------------------------------------------------------- # Enable or Disable a User Catalyst allows you to {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#enable-or-disable-a-user" %}}disable or enable a user{{%/link%}} at any time. A disabled user will be signed up to your application but will not be able to access your application. The SDK snippet below demonstrates enabling and disabling an end-user using the {{%badge%}}updateUserStatus(userId, USER_STATUS){{%/badge%}} method. The user is referred by their unique {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}User ID{{%/link%}}. You can find the User IDs of all users by navigating to the *Users* > {{%link href="/en/cloud-scale/help/authentication/user-management/introduction/" %}}*User Management*{{%/link%}} section of the Authentication component. ### To Enable a User {{%code class="language-javascript line-numbers"%}}const userManagement = app.userManagement(); userManagement.updateUserStatus('195000000042777', USER_STATUS.ENABLE){{%/code%}} ### To Disable a User {{%code class="language-javascript line-numbers"%}}const userManagement = app.userManagement(); userManagement.updateUserStatus('195000000042777', USER_STATUS.DISABLE){{%/code%}} <br /> -------------------------------------------------------------------------------- title: "Delete a User" description: "This page describes the method to delete users from your NodeJS application with sample code snippets." last_updated: "2026-03-18T07:41:08.565Z" source: "https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/authentication/delete-user/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Delete a User The {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}end-user of a Catalyst application{{%/link%}} can be deleted to discontinue accessing the application. This is done through {{%badge%}}deleteUser(){{%/badge%}} method, in which the {{%bold%}}User ID{{%/bold%}} of the user who is to be deleted is passed as a parameter. The promise returned here will be resolved to an object which is a JSON. {{%code class="language-javascript" scroll="set-scroll" %}}//Delete a single user by passing the user ID which in turn returns a promise let userManagement = app.userManagement(); let deleteUserPromise = userManagement.deleteUser(1510000000109587); deleteUserPromise.then(deletedUser => { console.log(deleteUserPromise); });{{% /code%}} --- ## SDK — Python — Authentication -------------------------------------------------------------------------------- title: "Get Authentication Instance" description: "This page describes the method to create a component instance in your Python application with sample code snippets." last_updated: "2026-03-18T07:41:08.594Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" service: "Cloud Scale" related: - Authentication Help (/en/cloud-scale/help/authentication/introduction) - SDK Scopes (/en/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Authentication {{%link href="/en/cloud-scale/help/authentication/introduction" %}}Catalyst Cloud Scale Authentication{{%/link%}} features in Python SDK help you perform user authentication-specific operations, such as adding a new user, fetching details of the current user or all users, resetting the password of an existing user account, and deleting a user. ### Get a Component Instance A component instance is an object that can be used to access the predefined configurations specific to a particular component. You can create a component instance for Authentication to execute various user management actions, which will not fire a server-side call. The {{%badge%}}app{{%/badge%}} reference used in the code below is the {{%link href="/en/sdk/python/v1/setup/#initializing-the-sdk" %}}Python object{{%/link%}} returned as a response during SDK initialization. You can create a new {{%badge%}}authentication_service{{%/badge%}}instance as shown below : {{%code class="language-python"%}}#Get Authentication component instance authentication_service = app.authentication() {{%/code%}} This component instance will be used as shown in the various Authentication sections of the Python SDK documentation. -------------------------------------------------------------------------------- title: "Add New User" description: "This page describes the method to add new end-users to your Python application with sample code snippets." last_updated: "2026-03-18T07:41:08.594Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/add-new-user/" service: "Cloud Scale" related: - Add New User - API (/en/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser) - Authentication Help (/en/cloud-scale/help/authentication/introduction) - SDK Scopes (/en/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Add New User You can add end-users to your Catalyst application and they will be assigned to a default organization automatically, if the organization is not specified explicitly. When the user is added, a unique {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/#authentication-and-user-basics" %}}user_ID{{%/link%}} and {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/#authentication-and-user-basics" %}}ZUID{{%/link%}} are generated for them by Catalyst. #### Create a Dictionary Before you add a new user to the Catalyst application, you must create a dictionary that contains the user details such as the last name of the user, the role they have to be assigned to, their email address, the application platform and the ZAID data based on the current working environment. The dictionary that contains these details will be passed as a parameter to the {{%badge%}}register_user(){{%/badge%}} method. {{%note%}}{{%bold class="bold-primary" %}}Note :{{%/bold%}} * You must provide the values for {{%badge%}}email_id{{%/badge%}} and {{%badge%}}first_name{{%/badge%}} to register a user mandatorily. * You can obtain the {{%badge%}}role_id{{%/badge%}} from the _Roles_ section in _Authentication_ in the Catalyst console. * You can obtain the ZAID from the {{%link href="/en/deployment-and-billing/environments/introduction" %}}Environment settings{{%/link%}} in your Catalyst console. * When inviting a new user, you can configure the sender's email address, subject and the email message. You must add the email address in the {{%link href="/en/cloud-scale/help/mail/email-configuration/" %}}Catalyst Mail Component{{%/link%}} and get it verified before using it in the SDK code. {{%/note%}} {{%code class="language-python" scroll="set-scroll" %}}#Create a dictionary signup_config = { "platform_type": "web", "zaid": "81008807534807534", "template_details": { "senders_mail": "dogogetu@tutuapp.bid", "subject": "Welcome to %APP_NAME%", "message": "&lt;p&gt;Hello ,&lt;/p&gt; &lt;p&gt;Follow this link to join in %APP_NAME% .&lt;/p&gt; &lt;p&gt;&lt;a href='%LINK%'&gt;%LINK%&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you didn’t ask to join the application, you can ignore this email.&lt;/p&gt; &lt;p&gt;Thanks,&lt;/p&gt; &lt;p&gt;Your %APP_NAME% team&lt;/p&gt;", }, } user_details = { "first_name": "Amelia", "last_name": "Burrows", "role_id": "1008807534", "email_id": "amelia.burrows@zylker.com", } {{% /code%}} ### Add New User After you have configured the necessary user information in the dictionary, you can proceed to add a new user to an organization. In this case, an organization will automatically be assigned to the user. The {{%badge%}}register_user(){{%/badge%}} method handles the user creation process and returns a response. To know more about the component instance {{%badge%}}authentication_service{{%/badge%}} used below, please refer to {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}this section{{%/link%}}. {{%note%}}{{%bold class="bold-primary" %}}Note :{{%/bold%}} You will only be able to add 25 users in your application in the {{%link href="/en/deployment-and-billing/environments/development-environment" %}}development environment{{%/link%}}. After you deploy your application to production, you can include any number of end-users in it.{{%/note%}} **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}signup_config{{%/badge%}}</td> <td>{{%badge%}}Object{{%/badge%}}</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will store the user registration details, including the application platform, ZAID, and the email information to be sent after registration.</td> </tr> <tr> <td>{{%badge%}}user_details{{%/badge%}}</td> <td>{{%badge%}}Object{{%/badge%}}</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will hold the user registration details such as first name, last name, email ID and the ID of the organization to which the user has to be added.</td> </tr> </tbody> </table> {{%code class="language-python" scroll="set-scroll" %}}#Add a new user authentication_service = app.authentication() response_data = authentication_service.register_user(signup_config, user_details) {{% /code%}} A sample response is shown below : {{%code class="language-json line-numbers" scroll="set-scroll" %}}{ "zaid":"81008807534807534", "user_details":{ "zuid":"1005641290", "org_id":"1005641456", "status":"ACTIVE", "is_confirmed":false, "email_id":"amelia.burrows@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "created_time":"Aug 12, 2021 12:33 PM", "modified_time":"Aug 12, 2021 12:33 PM", "invited_time":"Aug 12, 2021 12:33 PM", "role_details":{ "role_name":"App User", "role_id":"2305000000006024" }, "user_type":"App User", "user_id":"2305000000007752", "project_profiles":[ ] }, "redirect_url":"https://aliencity-66446133.development.catalystserverless.com/app/", "platform_type":"web", "org_id":"1005641456" } {{% /code%}} {{%note%}}{{%bold%}}Info :{{%/bold%}} Refer to the {{%link href="/en/sdk/python/v1/sdk-scopes" %}}SDK Scopes table{{%/link%}} to determine the required permission level for performing the above operation.{{%/note%}} -------------------------------------------------------------------------------- title: "Add New User to Existing Org" description: "This page describes the method to add a new user to the existing organisation in your Python application with sample code snippets." last_updated: "2026-03-18T07:41:08.595Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/add-new-user-to-existing-org/" service: "Cloud Scale" related: - Add New User to Existing Org - API (/en/api/code-reference/cloud-scale/authentication/add-user-to-existing-org/#AddaNewUsertoanExistingOrganization) - Authentication Help (/en/cloud-scale/help/authentication/introduction) - SDK Scopes (/en/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Add a New User to an Existing Organization You can add an end-user to an existing organization without creating a new organization for them. This can be done by providing the {{%link href="/en/getting-started/catalyst-organizations/" %}}**OrgID**{{%/link%}} of the organization that the user must be added to. When the user has signed up, unique identification values such as {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/#authentication-and-user-basics" %}}ZUID and User ID{{%/link%}} are created for them by Catalyst. {{%note%}}{{%bold class="bold-primary" %}}Note :{{%/bold%}} * You must provide the values for {{%badge%}}org_id{{%/badge%}}, {{%badge%}}email_id{{%/badge%}}, {{%badge%}}last_name{{%/badge%}} mandatorily to add a user to an existing organization. * You can obtain the ZAID from the {{%link href="/en/deployment-and-billing/environments/introduction" %}}Environment settings{{%/link%}} in your Catalyst console. * You can also add them to a role by providing the {{%badge%}}role_id{{%/badge%}}, which you can obtain from the Roles section in Authentication in the Catalyst console. * When inviting a new user, you can configure the sender's email address, subject and the email message. You must add the email address in the {{%link href="/en/cloud-scale/help/mail/email-configuration/" %}}Catalyst Mail Component{{%/link%}} and get it verified before using it in the SDK code. {{%/note%}} ## Create a Dictionary Before you add a new end-user to your Catalyst application, you must create a dictionary that contains the registration details of the particular user, as shown below. You can then pass the configured dictionary to the method that handles the user signup process. {{%code class="language-python" scroll="set-scroll" %}}#Create a dictionary signup_config = { "platform_type": "web", "zaid": "1008807534", "template_details": { "senders_mail": "dogogetu@tutuapp.bid", "subject": "Welcome to %APP_NAME%", "message": "&lt;p&gt;Hello ,&lt;/p&gt; &lt;p&gt;Follow this link to join in %APP_NAME% .&lt;/p&gt; &lt;p&gt;&lt;a href='%LINK%'&gt;%LINK%&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you didn’t ask to join the application, you can ignore this email.&lt;/p&gt; &lt;p&gt;Thanks,&lt;/p&gt; &lt;p&gt;Your %APP_NAME% team&lt;/p&gt;", }, } user_details = { "first_name": "Amelia", "last_name": "Burrows", "email_id": "amelia.burrows@gmail.com", "org_id": "1005641456", } {{%/code%}} ### Add a New User to Existing Org You can add a new end-user to an existing organization using the code below. You must pass the dictionary you created in the previous section as an argument to the {{%badge%}}add_user_to_org(){{%/badge%}} method. This method handles the user sign-up process and returns a response. {{%note%}}{{%bold class="bold-primary" %}}Note :{{%/bold%}} You will only be able to add 25 users in your application in the {{%link href="/en/deployment-and-billing/environments/development-environment" %}}development environment{{%/link%}}. After you deploy your application to production, you can include any number of end-users in it.{{%/note%}} To know more about the component instance {{%badge%}}authentication_service{{%/badge%}} used below, please refer to {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}this section{{%/link%}}. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}signup_config{{%/badge%}}</td> <td>Object</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will store the user registration details, including the application platform, ZAID, and the email information to be sent after registration.</td> </tr> <tr> <td>{{%badge%}}user_details{{%/badge%}}</td> <td>Object</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will hold the user registration details such as first name, last name, email ID and ID of the organization to which the user has to be registered.</td> </tr> </tbody> </table> {{%code class="language-python" scroll="set-scroll" %}}#Add new user to an existing organization authentication_service = app.authentication() response_data = authentication_service.add_user_to_org(signup_config, user_details) {{%/code%}} A sample response is shown below : {{%code class="language-json line-numbers"%}}{ "zaid":"1008807534", "user_details":{ "zuid":"1005643749", "org_id":"1005641456", "status":"ACTIVE", "is_confirmed":false, "email_id":"amelia.burrows@gmail.com", "first_name":"Amelia", "last_name":"Burrows", "created_time":"Aug 12, 2021 03:56 PM", "modified_time":"Aug 12, 2021 03:56 PM", "invited_time":"Aug 12, 2021 03:56 PM", "role_details":{ "role_name":"App User", "role_id":"2305000000006024" }, "user_type":"App User", "user_id":"2305000000009002", "project_profiles":[ ] }, "redirect_url":"https://aliencity-66446133.development.catalystserverless.com/app/", "platform_type":"web", "org_id":"1005641456" } {{%/code%}} {{%note%}}{{%bold%}}Info :{{%/bold%}} Refer to the {{%link href="/en/sdk/python/v1/sdk-scopes" %}}SDK Scopes table{{%/link%}} to determine the required permission level for performing the above operation.{{%/note%}} -------------------------------------------------------------------------------- title: "Reset Password" description: "This page describes the method to reset the password of a user account in your Python application with sample code snippets." last_updated: "2026-03-18T07:41:08.595Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/reset-password/" service: "Cloud Scale" related: - Reset Password - API (/en/api/code-reference/cloud-scale/authentication/reset-user-password/#ResetUserPassword) - Authentication Help (/en/cloud-scale/help/authentication/introduction) - SDK Scopes (/en/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Reset Password You can reset the password of a registered user's account using the following code snippet. While calling the {{%badge%}}reset_password(){{%/badge%}} method, a reset password link will be generated and sent to the user's email address. {{%note%}}{{%bold class="bold-primary" %}}Note: {{%/bold%}} * The {{%badge%}}email_id{{%/badge%}}, {{%badge%}}platform_type{{%/badge%}}, and {{%badge%}}zaid{{%/badge%}} are mandatory attributes. * You can configure the sender's email address, subject and the email message. You must add the email address in the {{%link href="/en/cloud-scale/help/mail/email-configuration/" %}}Catalyst Mail Component{{%/link%}} and get it verified before using it in the SDK code. {{%/note%}} #### Create a Dictionary You will need to create a dictionary that contains the registration details of a particular user as given below. You can then pass the configured dictionary to the method that handles the password reset process. {{%code class="language-python" scroll="set-scroll" %}}#Create a dictionary reset_config = { "platform_type": "web", "zaid": "1008807534", "template_details": { "senders_mail": "dogogetu@tutuapp.bid", "subject": "Welcome to %APP_NAME%", "message": "<p>Hello ,</p> <p>Follow this link to join in %APP_NAME% .</p> <p><a href='%LINK%'>%LINK%</a></p><p>If you didnt ask to join the application, you can ignore this email.</p><p>Thanks,</p> <p>Your %APP_NAME% team</p>", }, } {{% /code%}} ### Reset the Password The objects that contains the user information and user signup configuration are passed as arguments to the {{%badge%}}reset_password(){{%/badge%}} method which returns a response. To know more about the component instance {{%badge%}}authentication_service{{%/badge%}} used below, please refer to {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}this section{{%/link%}}. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}email_id{{%/badge%}}</td> <td>String</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will hold the value of the the user's email address.</td> </tr> <tr> <td>{{%badge%}}reset_config{{%/badge%}}</td> <td>Object</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will store the details of the user account for which the password needs to be reset. These details include the application platform type, the ZAID, and the email information to be sent after the password reset.</td> </tr> </tbody> </table> {{%code class="language-python" scroll="set-scroll" %}}user = app.user_management() users = user.reset_password('amelia.b@zylker.com', { 'platform_type': 'web', 'redirect_url': 'https://www.google.com', 'template_details': { 'subject': 'Reset Password', 'message': 'Click on the link to reset your password: <a href="{{reset_password_url}}">Reset Password</a>', 'senders_mail': 'support@zylker.com' } }) print(users) {{%/code%}} A sample response is shown below : {{%code class="language-json"%}}"Reset link sent to amelia.burrows@zylker.com. Please check your email". {{%/code%}} {{%note%}}{{%bold%}}Info :{{%/bold%}} Refer to the {{%link href="/en/sdk/python/v1/sdk-scopes" %}}SDK Scopes table{{%/link%}} to determine the required permission level for performing the above operation.{{%/note%}} -------------------------------------------------------------------------------- title: "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: "2026-03-18T07:41:08.595Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/custom-user-validation/" service: "Cloud Scale" related: - Authentication Help (/en/cloud-scale/help/authentication/introduction) - SDK Scopes (/en/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Custom User Validation Catalyst Authentication allows you to authorize and validate your end-users using a custom {{%link href="/en/serverless/help/functions/basic-io/" %}}Basic I/O function{{%/link%}} 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 {{%badge%}}authentication_service{{%/badge%}} used below, please refer to {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}this section{{%/link%}}. A sample code for a {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction/" %}}Custom User Validation{{%/link%}} function is given below. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}basicio{{%/badge%}}</td> <td>Function</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. The Basic IO Catalyst function that allows to authorize and validate your end-users.</td> </tr> </tbody> </table> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import json import zcatalyst_sdk{{% /panel_without_adjustment %}} {{%code class="language-python line-numbers"%}}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(){{%/code%}} To test this function, you can pass the details of the user in the following {{%badge%}}.JSON{{%/badge%}} format: {{%code class="language-json line-numbers"%}}{ "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" } }{{%/code%}} {{%note%}}{{%bold%}}Info :{{%/bold%}} Refer to the {{%link href="/en/sdk/python/v1/sdk-scopes" %}}SDK Scopes table{{%/link%}} to determine the required permission level for performing the above operation.{{%/note%}} -------------------------------------------------------------------------------- title: "Generate a Custom Server Token" description: "This page describes the method to reset the password of a user account in your Python application with sample code snippets." last_updated: "2026-03-18T07:41:08.595Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/third-party-server-token/" service: "Cloud Scale" related: - Authentication Help (/en/cloud-scale/help/authentication/introduction) - SDK Scopes (/en/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Generate a Custom Server Token Cloud Scale's Authentication component allows you to implement a {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/introduction/" %}}third-party authentication service{{%/link%}} of your preference for your Catalyst application. The authorization and validation of the end-user is handled by the third-party service, and the data is passed on to Catalyst. {{%note%}}{{%bold%}}Note:{{%/bold%}} * Since you are implementing a third-party authentication service, it is understood that the security infrastructure of your application is contingent on the efficiency of the third-party service that you have chosen. * To enable a third-party authentication in your Catalyst application, you must ensure that you have enabled {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup{{%/link%}} in the console.{{%/note%}} When a user is re-directed from a third-party service after being authenticated, their credentials must be passed to an authentication function that you code. This function must include the Catalyst server-side script to generate a custom server token, which will then be passed to the Web SDK incorporated in the client code. {{%note%}}{{%bold%}}Info :{{%/bold%}} Refer to the {{%link href="/en/sdk/python/v1/sdk-scopes" %}}SDK Scopes table{{%/link%}} to determine the required permission level for performing the below operation.{{%/note%}} **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">String</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}type{{%/badge%}}</td> <td>String</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will hold the value of the application type.</td> </tr> <tr> <td>{{%badge%}}user_details{{%/badge%}}</td> <td>Object</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will hold values of first_name and email_id of the end user.</td> </tr> </tbody> </table> {{% panel_without_adjustment header="Package Imports" class="language-java line-numbers" %}}import zcatalyst_sdk{{% /panel_without_adjustment %}} {{%code class="language-python line-numbers"%}}def handler(context, basicio): app = zcatalyst_sdk.initialize() auth = app.authentication() resp = auth.generate_custom_token( { "type": "web", "user_details": { "first_name": "Amelia", "email_id": "amelia.burrows@zylker.com", }, } ) basicio.write(str(resp)) context.close(){{%/code%}} You can now pass this token to the client logic as explained in this {{%link href="/en/sdk/web/v4/cloud-scale/authentication/third-party-custom-token/" %}}Web SDK help page{{%/link%}}. {{%note%}}{{%bold%}}Note:{{%/bold%}} The custom server token will have to be generated every single time the user logs in to your application using a third-party authentication service.{{%/note%}} -------------------------------------------------------------------------------- title: "Get User Details" description: "This page describes the method to fetch user details from the Data Store in your Python application with sample code snippets." last_updated: "2026-03-18T07:41:08.595Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/get-user-details/" service: "Cloud Scale" related: - Get User Details - API (/en/api/code-reference/cloud-scale/authentication/get-current-user/#GetCurrentUser) - Authentication Help (/en/cloud-scale/help/authentication/introduction) - SDK Scopes (/en/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Get user details Catalyst Authentication provides some methods to retrieve the details of the {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}application users{{%/link%}}. You can obtain the user information of the current user, any user, or all users of the application. ### Get Details of Current User The {{%badge%}}get_current_user(){{%/badge%}} method fetches the details of the current user accessing the application and on whose scope the function is being executed. To know more about the component instance {{%badge%}}authentication_service{{%/badge%}} used below, please refer to {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}this section{{%/link%}}. {{%code class="language-python" scroll="set-scroll" %}}#Get details of user authentication_service = app.authentication() current_user = authentication_service.get_current_user() {{%/code%}} A sample response is shown below : {{%code class="language-json line-numbers"%}}{ "zuid":"1005641433", "org_id":"1005641434", "status":"ACTIVE", "is_confirmed":false, "email_id":"amelia.burrows@zylker.com", "first_name":"Amelia", "last_name":"Burrows", "created_time":"Aug 12, 2021 12:27 PM", "role_details":{ "role_name":"App User", "role_id":"2305000000006024" }, "user_type":"App User", "user_id":"2305000000007745", "locale":"us|en|Asia/Kolkata", "time_zone":"Asia/Kolkata", "project_profiles":[ ] } {{% /code%}} ### Get User Details by User ID You can retrieve the details of a particular user by passing the userID of the user to the {{%badge%}}get_user_details(){{%/badge%}} method. The response returns the details of the particular user, such as their lastname, the list of the roles the user holds, the type of the user, the orgID of the organization the user belongs to, their email address, and more. To know more about the component instance {{%badge%}}authentication_service{{%/badge%}} used below, please refer to {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}this section{{%/link%}}. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}user_id{{%/badge%}}</td> <td>String</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will store the unique ID of the user whose details need to be retrieved.</td> </tr> </tbody> </table> {{%code class="language-python" scroll="set-scroll" %}}#Get details by userid authentication_service = app.authentication() user_details=authentication_service.get_user_details('12345') {{% /code%}} A sample response is shown below : {{%code class="language-json line-numbers"%}}{ "zuid":"1005665160", "org_id":"1005665245", "status":"ACTIVE", "is_confirmed":false, "email_id":"mikerogers@zylker.com ", "first_name":"Michael", "last_name":"Rogers", "created_time":"Aug 17, 2021 04:55 PM", "role_details":{ "role_name":"App User", "role_id":"2136000000007748" }, "user_type":"App User", "user_id":"2136000000020040", "locale":"us|en|Asia/Kolkata", "time_zone":"Asia/Kolkata", "project_profiles":[ ] } {{%/code%}} ### Get Details of All Users The {{%badge%}}get_all_users(){{%/badge%}} method can fetch the details of all the users of all organizations. The response returns the following details of all the users : lastname, the list of the roles, the type of the user, email address, userID, zuid, time zone, and more. To know more about the component instance {{%badge%}}authentication_service{{%/badge%}} used below, please refer to {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}this section{{%/link%}}. {{%code class="language-python" scroll="set-scroll" %}}#Get details of all users authentication_service = app.authentication() user_details = authentication_service.get_all_users() {{% /code%}} A sample response is shown below : {{%code class="language-json line-numbers"%}}[ { "zuid":"1005648252", "org_id":"1005648253", "status":"ACTIVE", "is_confirmed":false, "email_id":"p.boyle@zylker.com", "first_name":"Parker", "last_name":"Boyle", "created_time":"Aug 13, 2021 01:36 PM", "modified_time":"Aug 13, 2021 01:36 PM", "invited_time":"Aug 13, 2021 01:36 PM", "role_details":{ "role_name":"App User", "role_id":"2136000000007748" }, "user_type":"App User", "user_id":"2136000000007774", "locale":"us|en|Asia/Kolkata", "time_zone":"Asia/Kolkata", "project_profiles":[ ] }, { "zuid":"1005665160", "org_id":"1005665245", "status":"ACTIVE", "is_confirmed":false, "email_id":"rsmith@zylker.com ", "first_name":"Robert", "last_name":"Smith", "created_time":"Aug 17, 2021 04:55 PM", "modified_time":"Aug 17, 2021 04:55 PM", "invited_time":"Aug 17, 2021 04:55 PM", "role_details":{ "role_name":"App User", "role_id":"2136000000007748" }, "user_type":"App User", "user_id":"2136000000020040", "locale":"us|en|Asia/Kolkata", "time_zone":"Asia/Kolkata", "project_profiles":[ ] } ] {{% /code%}} ### Get Details of All Users in an org The {{%badge%}}org_id{{%/badge%}} is passed as a parameter to the {{%badge%}}get_all_users(){{%/badge%}} method in order to fetch the users belonging to a particular organization. To know more about the component instance {{%badge%}}authentication_service{{%/badge%}} used below, please refer to {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}this section{{%/link%}}. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}org_id{{%/badge%}}</td> <td>String</td> <td>An {{%bold%}}Optional{{%/bold%}} parameter. Will store the ID of the organization whose user details need to be retrieved. If `org_id` is not specified, details of all users across all organizations will be retrieved.</td> </tr> </tbody> </table> {{%code class="language-python" scroll="set-scroll" %}}#Get details of all users authentication_service = app.authentication() user_details = authentication_service.get_all_users(1293028) {{% /code%}} A sample response is shown below : {{%code class="language-json line-numbers"%}}[ { "zuid":"1005648252", "org_id":"1005648253", "status":"ACTIVE", "is_confirmed":false, "email_id":"roger.p@zylker.com", "first_name":"Roger", "last_name":"Parkinson", "created_time":"Aug 13, 2021 01:36 PM", "modified_time":"Aug 13, 2021 01:36 PM", "invited_time":"Aug 13, 2021 01:36 PM", "role_details":{ "role_name":"App User", "role_id":"2136000000007748" }, "user_type":"App User", "user_id":"2136000000007774", "locale":"us|en|Asia/Kolkata", "time_zone":"Asia/Kolkata", "project_profiles":[ ] } ] {{% /code%}} {{%note%}}{{%bold%}}Info :{{%/bold%}} Refer to the {{%link href="/en/sdk/python/v1/sdk-scopes" %}}SDK Scopes table{{%/link%}} to determine the required permission level for performing the above operation.{{%/note%}} -------------------------------------------------------------------------------- title: "Update User Details" description: "This page describes the method to reset the password of a user account in your Python application with sample code snippets." last_updated: "2026-03-18T07:41:08.596Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/update-user-details/" service: "Cloud Scale" related: - Authentication Help (/en/cloud-scale/help/authentication/introduction) - SDK Scopes (/en/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Update User Details Catalyst allows you to {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#modify-a-users-details" %}}modify and update{{%/link%}} the following details of an end-user: * First Name * Last Name * {{%link href="/en/getting-started/catalyst-organizations/" %}}OrgID{{%/link%}} : OrgID is a unique value that is generated by Catalyst to associate with an organization. * {{%link href="/en/cloud-scale/help/authentication/user-management/roles/implementation/" %}}RoleID{{%/link%}} : Role ID is the value generated by Catalyst that is assigned to a particular {{%link href="/en/cloud-scale/help/authentication/user-management/roles/introduction/" %}}user role{{%/link%}}. ### Create a dictionary {{%code class="language-python line-numbers"%}}update_config = { "email_id": "amelia.burrows@zylker.com", "last_name": "Burrows", "first_name": "Amelia", "org_id": "1012585680", "role_id": "6759000000054065", } {{%/code%}} The SDK snippet below demonstrates updating an end-user’s details using the {{%badge%}}update_user_details(userID, userDetails){{%/badge%}} method. The first name of the user is updated in the example below. To know more about the component instance {{%badge%}}authentication_service{{%/badge%}} used below, please refer to {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}this section{{%/link%}}. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}UserID{{%/badge%}}</td> <td>String</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will hold the UserID of the user whose details are to be updated.</td> </tr> <tr> <td>{{%badge%}}update_config{{%/badge%}} </td> <td>Object</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will hold the values of email_id, last_name, first_name, org_id and role_id. You can update the first_name or last_name parameter here.</td> </tr> </tbody> </table> {{%code class="language-python line-numbers"%}}authentication_service = app.authentication() user_details=authentication_service.update_user_details('6759000000124659', update_config) {{%/code%}} {{%note%}}{{%bold%}}Info :{{%/bold%}} Refer to the {{%link href="/en/sdk/python/v1/sdk-scopes" %}}SDK Scopes table{{%/link%}} to determine the required permission level for performing the above operation.{{%/note%}} -------------------------------------------------------------------------------- title: "Delete User" description: "This page describes the method to delete users from your Python application with sample code snippets." last_updated: "2026-03-18T07:41:08.596Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/delete-user/" service: "Cloud Scale" related: - Authentication Help (/en/cloud-scale/help/authentication/introduction) - SDK Scopes (/en/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Delete a User The {{%link href="/en/cloud-scale/help/authentication/introduction" %}}end-user of a Catalyst application{{%/link%}} can be deleted from a Catalyst application to discontinue their access to it. This can be done by calling the {{%badge%}}delete_user(){{%/badge%}} method and by passing the {{%badge%}}UserID{{%/badge%}} of the user to be deleted as a parameter to it. This method returns a response as true when the user is deleted. To know more about the component instance {{%badge%}}authentication_service{{%/badge%}} used below, please refer to {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}this section{{%/link%}}. **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}UserID{{%/badge%}}</td> <td>{{%badge%}}String{{%/badge%}}</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will store the ID of the user to be deleted.</td> </tr> </tbody> </table> {{%code class="language-python" scroll="set-scroll" %}}#Delete an existing user authentication_service = app.authentication() delete_response = authentication_service.delete_user(2305000000007745) {{% /code%}} {{%note%}}{{%bold%}}Info :{{%/bold%}} Refer to the {{%link href="/en/sdk/python/v1/sdk-scopes" %}}SDK Scopes table{{%/link%}} to determine the required permission level for performing the above operation.{{%/note%}} -------------------------------------------------------------------------------- title: "Enable or Disable a User" description: "This page describes the method to enable or disable a user in your Python application with sample code snippets." last_updated: "2026-03-18T07:41:08.596Z" source: "https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/authentication/enable-disable-user/" service: "Cloud Scale" related: - Authentication Help (/en/cloud-scale/help/authentication/introduction) - Enable or Disable a User in the Console (/en/cloud-scale/help/authentication/user-management/users/implementation/#enable-or-disable-a-user) - SDK Scopes (/en/sdk/python/v1/sdk-scopes) -------------------------------------------------------------------------------- # Enable or Disable a User Catalyst allows you to {{%link href="/en/cloud-scale/help/authentication/user-management/users/implementation/#enable-or-disable-a-user" %}}disable or enable a user{{%/link%}} at any time. A disabled user will be signed up to your application but will not be able to access your application. The SDK snippet below demonstrates enabling and disabling an end-user using the {{%badge%}}update_user_status(userId, user_status){{%/badge%}} method. The user is referred by their unique {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}User ID{{%/link%}}. You can find the User IDs of all users by navigating to the *Users* > {{%link href="/en/cloud-scale/help/authentication/user-management/introduction/" %}}*User Management*{{%/link%}} section of the Authentication component. To know more about the component instance {{%badge%}}authentication_service{{%/badge%}} used below, please refer to {{%link href="/en/sdk/python/v1/cloud-scale/authentication/get-component-instance/" %}}this section{{%/link%}}. ### To Enable a User **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}userId{{%/badge%}}</td> <td>String</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will hold the UserID of the user to be enabled for the application.</td> </tr> <tr> <td>{{%badge%}}user_status{{%/badge%}}</td> <td>String</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will hold the default value "enable".</td> </tr> </tbody> </table> {{%code class="language-python line-numbers"%}}authentication_service = app.authentication() user_details = authentication_service.update_user_status('6759000000124659', 'enable') # Replace the user id {{%/code%}} ### To Disable a User **Parameters Used** <table class="content-table"> <thead> <tr> <th class="w20p">Parameter Name</th> <th class="w20p">Data Type</th> <th class="w60p">Definition</th> </tr> </thead> <tbody> <tr> <td>{{%badge%}}userId{{%/badge%}}</td> <td>{{%badge%}}String{{%/badge%}}</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will hold the UserID of the user to be disabled for the application.</td> </tr> <tr> <td>{{%badge%}}user_status{{%/badge%}}</td> <td>{{%badge%}}String{{%/badge%}}</td> <td>A {{%bold%}}Mandatory{{%/bold%}} parameter. Will hold the default value "disable"</td> </tr> </tbody> </table> {{%code class="language-python line-numbers"%}}authentication_service = app.authentication() user_details = authentication_service.update_user_status('6759000000124659', 'disable') # Replace the user id {{%/code%}} {{%note%}}{{%bold%}}Info :{{%/bold%}} Refer to the {{%link href="/en/sdk/python/v1/sdk-scopes" %}}SDK Scopes table{{%/link%}} to determine the required permission level for performing the above operation.{{%/note%}} --- ## SDK — Web — Authentication -------------------------------------------------------------------------------- title: "Get an Authentication Instance" description: "This page describes the method to fetch an authentication instance in your Web application with sample code snippets." last_updated: "2026-03-18T07:41:08.597Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/get-auth-instance/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Get an Authentication Instance The {{%badge%}}auth{{%/badge%}} reference can be created to perform sign-in and sign-out operations.The following method will be used for this purpose and does not fire a server side call: {{%code class="language-javascript" scroll="set-scroll" %}}//Get an Auth instance var auth = catalyst.auth; {{% /code%}} -------------------------------------------------------------------------------- title: "Get a Component Instance" description: "This page describes the method to fetch a component instance in your Web application with sample code snippets." last_updated: "2026-03-18T07:41:08.597Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/get-comp-instance/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Get a Component Instance The {{%badge%}}userManagement{{%/badge%}} reference can be created using the following method which does not fire a server side call. {{%code class="language-javascript" scroll="set-scroll" %}}//Get an UserManagement Instance var userManagement = catalyst.userManagement; {{% /code%}} -------------------------------------------------------------------------------- title: "Add New User" description: "This page describes the method to add a new user account to your Web application with sample code snippets." last_updated: "2026-03-18T07:41:08.597Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/add-new-user/" service: "Cloud Scale" related: - Get Authentication Instance - Web SDK (/en/sdk/web/v4/cloud-scale/authentication/get-auth-instance) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Add New User You can add end users to your Catalyst serverless applications, fetch their details, or manage their accounts easily. When a user has signed up to a Catalyst application, unique identification values like {{%badge%}}ZUID{{%/badge%}} and {{%badge%}}userID{{%/badge%}} are created for them. The user is also assigned to an organization by Catalyst. You can learn more about this from the {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}Users help page{{%/link%}}. You can use the following code snippet to register a new user to access your Catalyst application. This registration process is handled using the {{%badge%}}signUp(){{%/badge%}} method. The {{%badge%}}auth{{%/badge%}} reference used in the code snippet below is defined in the {{%link href="/en/sdk/web/v4/cloud-scale/authentication/get-auth-instance" %}}auth instance page{{%/link%}}. You must provide the email address and last name to register of the user mandatorily while adding the user. {{%note%}}{{%bold%}}Note:{{%/bold%}} You will be able to add only 25 users in your application in the {{%link href="/en/deployment-and-billing/environments/development-environment" %}}development environment{{%/link%}}. After you deploy your application to production, you can include any number of end-users in it.{{%/note%}} The JSON objects containing the registration details of a particular user are created as shown below. {{%code class="language-javascript" scroll="set-scroll" %}}//Enter the first name, last name, email id, platform and the redirect url var data = { "first_name": "Jason", "last_name": "Chang", "email_id": "jason.c@zylker.com", "platform_type": "web", "redirect_url": "https://shipmenttracking.zylker.com/" }; {{% /code%}} This object is passed as an argument to the {{%badge%}}signUp(){{%/badge%}} method. The promise returned here will be resolved to an object whose content key contains details of the registered user. {{%code class="language-javascript" scroll="set-scroll" %}}//Register the user by passing the object This in turn returns a promise var auth = catalyst.auth; var signupPromise = auth.signUp(data); signupPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); {{% /code%}} A sample response that you will receive for each version is shown below: {{% panel_with_select header="Web SDK" %}} {{% divtag id="V3" class="language-json line-numbers"%}} { zaid: "1005634498", user_details: { zuid: "1005641290", zaaid: "1005641456", org_id: "1005641456", status: "ACTIVE", is_confirmed: false, email_id: "p.boylie@zylker.com", first_name: "loki", last_name: "Boyle", created_time: "Aug 12, 2021 12:33 PM", modified_time: "Aug 12, 2021 12:33 PM", invited_time: "Aug 12, 2021 12:33 PM", role_details: { role_name: "App User", role_id: "10103000000115016" }, user_type: "App User", source: "Email", user_id: "10103000000111308" }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type": "web", org_id: "10062221186" } {{% /divtag %}} {{% divtag id="V2" class="language-json line-numbers"%}} { zaid: 1005634498, user_details: { zuid: 1005641433, zaaid: 1005641434, org_id: 1005641434, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 12, 2021 12:27 PM", modified_time: "Aug 12, 2021 12:27 PM", invited_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000007745, project_profiles: [] }, redirect_url: "https://aliencity-66446133.development.catalystserverless.com/app/", platform_type: "web", org_id: null } {{% /divtag %}} {{% /panel_with_select %}} -------------------------------------------------------------------------------- title: "Reset Password" description: "This page describes the method to reset the password of a user account in your Web application with sample code snippets." last_updated: "2026-03-18T07:41:08.597Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/reset-password/" service: "Cloud Scale" related: - Get Component Instance - Web SDK (/en/sdk/web/v4/cloud-scale/authentication/get-comp-instance) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Reset Password Once a user has been successfully registered, you can reset their password using the following code snippet. When the the {{%badge%}}forgotPassword(){{%/badge%}} method is called, a reset password link will be generated and sent to the user's email address. Only the user's email address is a mandatory attribute. The {{%badge%}}userManagement{{%/badge%}} reference used in the code snippet below is the {{%link href="/en/sdk/web/v4/cloud-scale/authentication/get-comp-instance" %}} component instance.{{%/link%}} JSON objects containing the registration details of a particular user are created as follows: {{%code class="language-javascript" scroll="set-scroll" %}}//Create an object with the details such as email Id, platform and redirect url var data = { "email_id": "amelia.burrows@zylker.com", "platform_type": "web", "redirect_url": "https://catalyst.zoho.com" }; {{% /code%}} This object is passed as an argument to the {{%badge%}}forgotPassword(){{%/badge%}} method. {{%note%}}{{%bold%}}Note : {{%/bold%}} The promise returned will be resolved to an object in which the content key contains a confirmation message.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}//Reset password by passing the details. This in turn returns a promise. var userManagement = catalyst.userManagement; var forgotPromise = userManagement.forgotPassword(data); forgotPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); {{% /code%}} -------------------------------------------------------------------------------- title: "Set New Password" description: "This page describes the method to set the password of the user after they complete the login process with Authentication." last_updated: "2026-03-18T07:41:08.597Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/set-new-password/" service: "Cloud Scale" related: - Get Component Instance - Web SDK (/en/sdk/web/v4/cloud-scale/authentication/get-comp-instance) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- This SDK snippet allows your end-user to reset their password after they have logged in to your applicaiton. It is mandatory that they input their {{%badge%}}oldPassword{{%/badge%}} to change it. The {{%badge%}}auth{{%/badge%}} reference used in the code snippet below is defined in the {{%link href="/en/sdk/web/v4/cloud-scale/authentication/get-auth-instance" %}}auth instance page{{%/link%}}. {{%code class="language-javascript" scroll="set-scroll" %}}catalyst.auth.changePassword(oldPassword,newPassword) {{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} This SDK snippet is only available if you install Web SDK 4.3.0{{%/note%}} -------------------------------------------------------------------------------- title: "Get a User Object" description: "This page describes the method to fetch a user object instance in your Web application with sample code snippets." last_updated: "2026-03-18T07:41:08.597Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/get-user-object/" service: "Cloud Scale" related: - Get Component Instance - Web SDK (/en/sdk/web/v4/cloud-scale/authentication/get-comp-instance) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Get a User Object A {{%badge%}}user{{%/badge%}} object can be created using the following method which does not fire a server side call. The {{%badge%}} userManagement{{%/badge%}}reference used in the code snippet below is the {{%link href="/en/sdk/web/v4/cloud-scale/authentication/get-comp-instance" %}} component instance.{{%/link%}} {{%code class="language-javascript" scroll="set-scroll" %}}//Get the user object passing the user id. var userManagement = catalyst.userManagement; var user = userManagement.userId(USER_ID); {{% /code%}} -------------------------------------------------------------------------------- title: "Get User Details" description: "This page describes the method to fetch a user account details in your Web application with sample code snippets." last_updated: "2026-03-18T07:41:08.597Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/get-user-details/" service: "Cloud Scale" related: - Get Component Instance - Web SDK (/en/sdk/web/v4/cloud-scale/authentication/get-comp-instance) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Get User Details Catalyst Authentication provides some methods to retrieve the details of the {{%link href="/en/cloud-scale/help/authentication/user-management/users/introduction/" %}}application users{{%/link%}}. You can obtain the user information of the current user, any user, or all users of the application. ### Get Current User Details The method {{%badge%}}getCurrentProjectUser(){{%/badge%}} fetches the details of a user on whose scope the function is getting executed. The {{%badge%}}userManagement{{%/badge%}} reference used in the code snippets is the {{%link href="/en/sdk/web/v4/cloud-scale/authentication/get-comp-instance/" %}}component instance{{%/link%}} created earlier. The promise returned here will be resolved to an object in which the content key contains the details of the current user of the application. {{%code class="language-javascript" scroll="set-scroll" %}}//Get the details of the current user var userManagement = catalyst.userManagement; var currentUserPromise = userManagement.getCurrentProjectUser(); currentUserPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); {{% /code%}} Additionally, you can also use the {{%badge%}}isUserAuthenticated(){{%/badge%}} method which is an alternative to the {{%badge%}}getCurrentProjectUser(){{%/badge%}} method. {{%code class="language-javascript" scroll="set-scroll" %}}//Get the details of the current user var userManagement = catalyst.auth; var currentUserPromise = userManagement.isUserAuthenticated(); currentUserPromise .then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); }); {{% /code%}} A sample response that you will receive for each version is shown below: {{% panel_with_select header="Web SDK" %}} {{% divtag id="V3" class="language-json line-numbers"%}} { zuid: "10062169698", zaaid: "10062169862", org_id: "10062169862", status: "ACTIVE", is_confirmed: false, email_id: "amelia.burrows@zylker.com", first_name: "Amelia", last_name: "Burrows", created_time: "Jul 05, 2023 10:30 AM", modified_time: "Jul 05, 2023 10:30 AM", invited_time: "Jul 05, 2023 10:30 AM", role_details: { role_name: "App Administrator", role_id: "10103000000115014" }, user_type: "App User", user_id: "10103000000115057", locale: "us|en_us|America/Los_Angeles", time_zone: "America/Los_Angeles" } {{% /divtag %}} {{% divtag id="V2" class="language-json line-numbers"%}} { zuid: 1005641433, zaaid: 1005641434, org_id: 1005641434, status: "ACTIVE", is_confirmed: false, email_id: "p.boyle@zylker.com", last_name: "Boyle", created_time: "Aug 12, 2021 12:27 PM", role_details: { role_name: "App User", role_id: 2305000000006024 }, user_type: "App User", user_id: 2305000000007745, locale: "us|en|Asia/Kolkata", time_zone: "Asia/Kolkata", project_profiles: [] } {{% /divtag %}} {{% /panel_with_select %}} -------------------------------------------------------------------------------- title: "Third-party Authentication" description: "This page describes the methods required to enable third-party authentication in your Catalyst application" last_updated: "2026-03-18T07:41:08.597Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/third-party-custom-token/" service: "Cloud Scale" related: - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Third-party Authentication Cloud Scale's Authentication component allows you to implement a {{%link href= "/en/cloud-scale/help/authentication/third-party-authentication/introduction/" %}}third-party authentication service{{%/link%}} of your preference for your Catalyst application. The authorization and validation of the end-user is handled by the third-party service, and the data is passed on to Catalyst. Before you associate a third-party authentication with your Catalyst application, you must ensure that you have first completed handling the third-party logic in the external service. You can configure the authentication with any third-party of your choice. {{%note%}}{{%bold%}}Note:{{%/bold%}} Since you are implementing a third-party authentication service, it is understood that the security infrastructure of your application is contingent on the efficiency of the third-party service that you have chosen.{{%/note%}} Next, you set up the third-party authentication that you configured in Catalyst by navigating to the Authentication component in *Cloud Scale* in the Catalyst console. The steps are explained in {{%link href="/en/cloud-scale/help/authentication/third-party-authentication/implementation/" %}}Set Up Third-party Authentication in Catalyst help page{{%/link%}}. This process involves the following steps that you must perform: ### Generate a Custom Server Token First, we generate a custom server token. When a user is re-directed from a third-party service after being authenticated, their credentials must be passed to an authentication function that you will need to code in {{%link href="/en/sdk/java/v1/cloud-scale/authentication/third-party-server-token/" %}}Java{{%/link%}}, {{%link href="/en/sdk/nodejs/v2/cloud-scale/authentication/third-party-server-token/" %}}Node.js{{%/link%}}, or {{%link href="/en/sdk/python/v1/cloud-scale/authentication/third-party-server-token/" %}}Python{{%/link%}}. This function will generate a Catalyst server-side token **JSON Web Token** token (JWT) which will then be passed to the client. {{%note%}}{{%bold%}}Note:{{%/bold%}} To enable a third-party authentication in your Catalyst application, you must ensure that you have enabled {{%link href="/en/cloud-scale/help/authentication/public-signup/" %}}Public Signup{{%/link%}} in the console.{{%/note%}} ### Authenticate User Using JWT The below SDK will use the generated JWT or custom token to authenticate the end-user. You must incorporate this code into your web client logic, to enable third-party authentication. This is a sample code that uses a JWT to authenticate the user is given below. {{%code class="language-xml line-numbers"%}}&lt;script src="https://static.zohocdn.com/catalyst/sdk/js/4.0.0/catalystWebSDK.js"&gt;&lt;/script&gt; &lt;script src="/__catalyst/sdk/init.js"&gt;&lt;/script&gt; &lt;script&gt; catalyst.auth.signinWithJwt(getCustomTokenCallback); function getCustomTokenCallback(){ return fetch("{domain}/server/{function_name}/execute") //function url to get the generated custom token .then(resp => resp.json() .then(resp => { return new Promise((resolve, reject) => { resolve({ client_id : "********", scopes : "ZOHOCATALYST.tables.rows.ALL,ZOHOCATALYST.cache.READ", jwt_token : "*********" }); }); })) } &lt;/script&gt; {{%/code%}} {{%note%}}{{%bold%}}Note:{{%/bold%}} The custom server token will have to be generated every single time the user logs in to your application using a third-party authentication service.{{%/note%}} ### Configure Addional Settings Finally, you can onfigure {{%link href="/en/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction/" %}}Customer User Validation{{%/link%}} or {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction/" %}}Authorized Domains{{%/link%}} as a part of *Whitelisting* and finish the set up. Catalyst will display a confirmation that a third-party authentication service has been enabled and your application’s authentication is being handled by it. -------------------------------------------------------------------------------- title: "Sign a User Out From The Application" description: "This page describes the method to sign out an user account from your Web application with sample code snippets" last_updated: "2026-03-18T07:41:08.598Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/sign-out-user/" service: "Cloud Scale" related: - Get Authentication Instance - Web SDK (/en/sdk/web/v4/cloud-scale/authentication/get-auth-instance) - Authentication (/en/cloud-scale/help/authentication/introduction) -------------------------------------------------------------------------------- # Sign a User Out From The Application A user can log out from the application using the {{%badge%}}signOut(){{%/badge%}} method where the redirect URL is passed as an argument.The {{%badge%}}auth{{%/badge%}} reference used in the code snippet below is the {{%link href="/en/sdk/web/v4/cloud-scale/authentication/get-auth-instance" %}}auth instance.{{%/link%}} {{%note%}}{{%bold%}}Note :{{%/bold%}} This does not return a promise.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}}//Configure the redirect url after successful logout var redirectURL = "https://catalyst.zoho.com"; //Use the redirect url and call the method to sign out  var auth = catalyst.auth; auth.signOut(redirectURL); {{% /code%}} -------------------------------------------------------------------------------- title: "Cross Domain Access" description: "This page describes the method to authenticte your backend and frontend servvices when they are hosted in different domains" last_updated: "2026-03-18T07:41:08.598Z" source: "https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/authentication/cross-domain-access/" service: "Cloud Scale" related: - Get Authentication Instance - Web SDK (/en/sdk/web/v4/cloud-scale/authentication/get-auth-instance) - Authentication (/en/cloud-scale/help/authentication/introduction) - Cross Domain Access Help Doc (/en/cloud-scale/help/authentication/cross-domain-access/) -------------------------------------------------------------------------------- # Authenticate Backend Requirements for Frontend Services The {{%badge%}}generateAuthToken(){{%/badge%}} SDK method will generate the required token to validate backend invocation calls made from the frontend services; when the backend and front services are hosted in different domains. {{%note%}}{{%bold%}}Notes:{{%/bold%}}<br /> * You need to ensure that the backend and frontend services though hosted on different hosting services are part of the same Catalyst project. * You must ensure you have whitelisted the domains of the backend and frontend services using the {{%bold%}}CORS{{%/bold%}} feature present in Catalyst Authentication. You can find out more about the CORS feature from this {{%link href="/en/cloud-scale/help/authentication/whitelisting/authorized-domains/introduction/#cors" %}}help documentation{{%/link%}}. * The {{%badge%}}generateAuthToken(){{%/badge%}} SDK method is available from Web SDK version v4.6.1.{{%/note%}} {{%code class="language-javascript" scroll="set-scroll" %}} var auth = catalyst.auth; auth.generateAuthToken().then((response) => { const token = response.access_token; // the required user token will be shared as value in the response }); {{%/code%}}