Skip to main content
CustomizedConsent
Example
// How to use the CustomizedConsent screen SDK:
import CustomizedConsent from '@auth0/auth0-acul-js/customized-consent';

// Instantiate the manager for the customized consent screen
const consentManager = new CustomizedConsent();

// Accessing screen data
const clientName = consentManager.client.name;
const userEmail = consentManager.user.email;
const requestedScopes = consentManager.screen.scopes;
const authorizationDetails = consentManager.screen.authorizationDetails;

console.log(`${clientName} is requesting consent from ${userEmail}.`);
console.log("Requested Scopes:", requestedScopes);
console.log("Authorization Details:", authorizationDetails);

// Accessing transaction errors from a previous attempt
const transactionErrors = consentManager.transaction.errors;
if (transactionErrors && transactionErrors.length > 0) {
  transactionErrors.forEach(error => {
    console.error(`Error: ${error.message}`);
    // Display these errors to the user.
  });
}

// Example of handling consent acceptance
async function onAcceptConsent() {
  try {
    await consentManager.accept();
    // On success, Auth0 will typically redirect.
  } catch (e) {
    console.error('Failed to accept consent:', e);
  }
}

// Example of handling consent denial
async function onDenyConsent() {
  try {
    await consentManager.deny({ denial_reason: "user_declined" });
    // On success, Auth0 will typically redirect.
  } catch (e) {
    console.error('Failed to deny consent:', e);
  }
}

Constructors

Creates an instance of the CustomizedConsent screen manager. The constructor initializes the BaseContext and sets up the screen property with an instance of ScreenOverride tailored for the customized consent screen.

Throws

If the Universal Login Context is not available or if the current screen name in the context does not match CustomizedConsent.screenIdentifier.

Properties

branding
client
organization
prompt
screen
Holds the specific screen data and properties for the Customized Consent screen, processed by ScreenOverride. This includes scopes and authorizationDetails.
tenant
transaction
untrustedData
user
screenIdentifier
string
The unique identifier for the Customized Consent screen. This static property is used by the SDK’s BaseContext to ensure that the class is instantiated in the correct screen context.

Methods

accept
Promise<void>
Submits the user’s decision to accept (grant) the requested permissions and authorization details. This method prepares and posts form data to the /u/customized-consent?state=<transaction_state> endpoint with action: "accept". The transaction state is automatically included in both the URL query parameter and the form body.A promise that resolves once the form submission is initiated. Typically, a successful submission leads to a server-side redirect.

Throws

Throws an error if FormHandler encounters an unrecoverable issue during submission (e.g., network error). Server-side validation errors from Auth0 (like “invalid_request”) are not thrown as JavaScript errors but are made available in this.transaction.errors after the operation.
deny
Promise<void>
Submits the user’s decision to deny (reject) the requested permissions and authorization details. This method prepares and posts form data to the /u/customized-consent?state=<transaction_state> endpoint with action: "deny". The transaction state is automatically included in both the URL query parameter and the form body.A promise that resolves once the form submission is initiated. A successful submission usually results in a server-side redirect.

Throws

Throws an error if FormHandler encounters an issue (e.g., network error). Server-side validation errors are reflected in this.transaction.errors.
getErrors
Retrieves the array of transaction errors from the context, or an empty array if none exist.An array of error objects from the transaction context.