> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
> Use this file to discover all available pages before exploring further.

# CustomizedConsent

<Frame>
  <img style={{maxHeight:"400px"}} src="https://mintcdn.com/generaltranslationinc/Q_4pAdRoZm2wi1v5/docs/images/cdy7uua7fh8z/6cK6DkpOJYTjubOGu2vpID/80c03b32275a2c332fe3216df0eca5c7/Consent.png?fit=max&auto=format&n=Q_4pAdRoZm2wi1v5&q=85&s=2b3ee5165e9d6a9073155b8650a21205" alt="" width="363" height="634" data-path="docs/images/cdy7uua7fh8z/6cK6DkpOJYTjubOGu2vpID/80c03b32275a2c332fe3216df0eca5c7/Consent.png" />
</Frame>

CustomizedConsent

```typescript Example theme={null}
// 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} demande le consentement de ${userEmail}.`);
console.log("Portées demandées :", requestedScopes);
console.log("Détails d'autorisation :", 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);
  }
}
```

<div id="constructors">
  ## Constructeurs
</div>

<ParamField body="CustomizedConsent" type="Constructor">
  Crée une instance du gestionnaire d’écran `CustomizedConsent`.
  Le constructeur initialise le `BaseContext` et configure la propriété `screen`
  avec une instance de `ScreenOverride` adaptée à l’écran de consentement personnalisé.

  <div id="throws">
    #### Exceptions
  </div>

  Générée si le contexte Universal Login n’est pas disponible ou si le
  nom de l’écran actuel dans le contexte ne correspond pas à `CustomizedConsent.screenIdentifier`.
</ParamField>

<div id="properties">
  ## Propriétés
</div>

<ParamField body="branding" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/BrandingMembers">BrandingMembers</a></span>} />

<ParamField body="client" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/ClientMembers">ClientMembers</a></span>} />

<ParamField body="organization" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/OrganizationMembers">OrganizationMembers</a></span>} />

<ParamField body="prompt" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/PromptMembers">PromptMembers</a></span>} />

<ParamField body="screen" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/ScreenMembersOnCustomizedConsent">ScreenMembersOnCustomizedConsent</a></span>}>
  Contient les données et propriétés spécifiques à l’écran « Customized Consent »,
  traitées par `ScreenOverride`. Cela inclut `scopes` et `authorizationDetails`.
</ParamField>

<ParamField body="tenant" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/TenantMembers">TenantMembers</a></span>} />

<ParamField body="transaction" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/TransactionMembers">TransactionMembers</a></span>} />

<ParamField body="untrustedData" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/UntrustedDataMembers">UntrustedDataMembers</a></span>} />

<ParamField body="user" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/UserMembers">UserMembers</a></span>} />

<ParamField body="screenIdentifier" type="string">
  Identifiant unique de l’écran « Customized Consent ».
  Cette propriété statique est utilisée par le `BaseContext` du SDK pour s’assurer que
  la classe est instanciée dans le bon contexte d’écran.
</ParamField>

<div id="methods">
  ## Méthodes
</div>

<ParamField body="accept" type="Promise<void>">
  Soumet la décision de l'utilisateur d'accepter (accorder) les permissions et les détails d'autorisation demandés.
  Cette méthode prépare et envoie les données de formulaire au point de terminaison `/u/customized-consent?state=<transaction_state>`
  avec `action: "accept"`. Le paramètre `state` de la transaction est automatiquement inclus à la fois dans le
  paramètre de requête de l'URL et dans le corps du formulaire.

  Une promesse qui se résout une fois que l'envoi du formulaire est initié.
  En général, un envoi réussi entraîne une redirection côté serveur.

  #### Lève

  Lève une erreur si `FormHandler` rencontre un problème irrécupérable
  pendant l'envoi (p. ex., une erreur réseau). Les erreurs de validation côté serveur
  provenant d'Auth0 (comme "invalid\_request") ne sont pas levées comme erreurs JavaScript,
  mais sont mises à disposition dans `this.transaction.errors` après l'opération.

  <Expandable title="Paramètres">
    <ParamField body="payload?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/CustomOptions">CustomOptions</a></span>}>
      Facultatif. Un objet contenant tout ensemble personnalisé de paires clé-valeur
      à envoyer avec la requête. Ces paramètres seront
      inclus dans les données de formulaire envoyées au serveur.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="deny" type="Promise<void>">
  Soumet la décision de l'utilisateur de refuser (rejeter) les permissions et les détails d'autorisation demandés.
  Cette méthode prépare et envoie les données de formulaire au point de terminaison `/u/customized-consent?state=<transaction_state>`
  avec `action: "deny"`. Le paramètre `state` de la transaction est automatiquement inclus à la fois dans le
  paramètre de requête de l'URL et dans le corps du formulaire.

  Une promesse qui se résout une fois que l'envoi du formulaire est initié.
  Un envoi réussi entraîne généralement une redirection côté serveur.

  #### Lève

  Lève une erreur si `FormHandler` rencontre un problème (p. ex., une erreur réseau).
  Les erreurs de validation côté serveur sont reflétées dans `this.transaction.errors`.

  <Expandable title="Paramètres">
    <ParamField body="payload?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/CustomOptions">CustomOptions</a></span>}>
      Facultatif. Un objet contenant tout ensemble personnalisé de paires clé-valeur
      à envoyer avec la requête. Ces paramètres seront
      inclus dans les données de formulaire envoyées au serveur.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="getErrors" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/Error">Error</a>[]</span>}>
  Récupère le tableau d'erreurs de la transaction à partir du contexte, ou un tableau vide s'il n'en existe aucune.

  Un tableau d'objets d'erreur provenant du contexte de la transaction.
</ParamField>
