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

> Découvrez l’objet API du déclencheur post-login des Actions.

# Objet API

L’objet API du déclencheur post-login des Actions comprend :

<div id="apiaccess">
  ## `api.access`
</div>

Modifiez l’accès de l’utilisateur qui tente de se connecter, par exemple en rejetant sa tentative de connexion.

<div id="apiaccessdenyreason">
  ### `api.access.deny(reason)`
</div>

Marquez la tentative de connexion en cours comme rejetée. L’utilisateur final ne pourra alors pas terminer
le flux de connexion. Cela n’annulera *PAS* les autres effets secondaires liés à l’utilisateur (comme les modifications
de métadonnées) demandés par cette action. Le flux de connexion s’arrêtera immédiatement après
l’exécution de cette action, et aucune autre action ne sera exécutée.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="reason" type="string">
    Une explication compréhensible du rejet de la connexion. Celle-ci peut être affichée
    directement dans les interfaces destinées aux utilisateurs finaux.
  </ParamField>
</Expandable>

<div id="apiaccesstoken">
  ## `api.accessToken`
</div>

Demandez des modifications au jeton d’accès en cours d’émission.

<div id="apiaccesstokensetcustomclaimkey-value">
  ### `api.accessToken.setCustomClaim(key, value)`
</div>

Définit une revendication personnalisée dans le jeton d’accès qui sera émis à la fin du flux de connexion.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    Nom de la revendication (il peut être nécessaire d’utiliser une URL complète).
  </ParamField>

  <ParamField body="value" type="unknown">
    Valeur de la revendication.
  </ParamField>
</Expandable>

<div id="apiaccesstokenaddscopescope">
  ### `api.accessToken.addScope(scope)`
</div>

Ajoute une portée au jeton d’accès qui sera émis à la fin du flux de connexion.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="scope" type="string">
    La portée à ajouter.
  </ParamField>
</Expandable>

<div id="apiaccesstokenremovescopescope">
  ### `api.accessToken.removeScope(scope)`
</div>

Supprime une portée du jeton d’accès qui sera émis à la fin du flux de connexion.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="scope" type="string">
    La portée à supprimer.
  </ParamField>
</Expandable>

<div id="apiauthentication">
  ## `api.authentication`
</div>

Demande de modifier l’état d’authentification de la session de l’utilisateur courant.

<div id="apiauthenticationchallengewithfactor-options">
  ### `api.authentication.challengeWith(factor, options)`
</div>

Demande un défi d’authentification multifacteur à l’aide du facteur fourni et, éventuellement, de facteurs supplémentaires.

Lorsqu’un défi d’authentification multifacteur est demandé, les Actions suivantes ne sont pas exécutées tant que l’utilisateur n’y a pas répondu. Un utilisateur aura répondu à l’invitation de vérification dans l’une ou l’autre des situations suivantes :

1. Il réussit la vérification associée au facteur par défaut.
2. Il réussit la vérification associée à l’un des facteurs facultatifs décrits dans `additionalFactors`.

Si l’un des facteurs demandés a déjà été vérifié avec succès dans la transaction en cours, il est ignoré.

Si un facteur demandé n’est pas activé dans le tenant, il est ignoré. Si un facteur demandé auquel l’utilisateur ne s’est pas inscrit est demandé, il est ignoré. Si aucun des facteurs demandés n’est activé ou inscrit, la transaction d’authentification échoue (c.-à-d. que la connexion ne se termine pas).

<Note>
  Cette méthode affiche un écran de vérification de facteur si l’utilisateur n’a pas déjà satisfait aux exigences de l’invitation de vérification. Si des `additionalFactors` sont fournis, l’utilisateur peut sélectionner un autre facteur s’il le souhaite.
</Note>

```js Challenge with a specific factor theme={null}
api.authentication.challengeWith({
  type: 'phone',
  options: { preferredMethod: 'both' }
});
```

```js Challenge with additional factors theme={null}
api.authentication.challengeWith({
  type: 'otp'
}, {
  additionalFactors: [{
    type: 'push-notification'
  }, {
    type: 'phone'
  }]
});
```

```js Challenge with push notification and disable OTP fallback theme={null}
api.authentication.challengeWith({
  type: 'push-notification',
  options: { otpFallback: false }
});
```

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="factor" type="factorselector">
    Objet décrivant le type de facteur et les options à utiliser pour le défi initial.

    <Expandable title="propriétés du facteur">
      <ParamField body="type" type="string">
        Type de facteur d’authentification, par exemple `push-notification`, `phone`, `email`, `otp`, `webauthn-roaming`, `webauthn-platform` et `recovery-code`.
        Valeurs permises : `otp`, `email`, `webauthn-platform`, `webauthn-roaming`, `recovery-code`
      </ParamField>

      <ParamField body="options" type="dictionary">
        Options supplémentaires permettant de configurer un facteur d’un type donné.
        Facultatif.
      </ParamField>
    </Expandable>
  </ParamField>

  <ParamField body="options" type="challengewithoptions">
    Options supplémentaires pouvant aussi inclure `additionalFactors` comme propriété. Les options spécifiques à un facteur (par exemple, `otpFallback` pour `push-notification`) doivent être définies dans `factor.options`.
    Facultatif.

    <Expandable title="propriétés des options">
      <ParamField body="additionalFactors" type="array of objects">
        Facultatif.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apiauthenticationchallengewithanyfactors">
  ### `api.authentication.challengeWithAny(factors)`
</div>

Demande un défi d’authentification multifacteur à l’aide de l’un des facteurs fournis (en affichant d’abord un écran de sélection du facteur).

Lorsqu’un défi d’authentification multifacteur est demandé, les Actions suivantes ne s’exécutent pas tant que l’utilisateur n’a pas répondu à cette invite. L’utilisateur aura satisfait à l’invite dans l’un ou l’autre des cas suivants :

1. Il répond avec succès à l’invite associée à l’un des facteurs.

Si l’un des facteurs demandés a déjà fait l’objet d’une invite réussie dans la transaction en cours, il est ignoré.

Si un facteur demandé n’est pas activé dans le tenant, il est ignoré. Si un facteur demandé n’a pas été inscrit par l’utilisateur, il est ignoré. Si aucun des facteurs demandés n’est activé ou inscrit, la transaction d’authentification échoue (c.-à-d. que la connexion ne se termine pas).

<Note>
  Cette méthode affiche l’écran de sélection du facteur si l’utilisateur n’a pas déjà satisfait aux exigences de l’invite. Si un facteur est privilégié, il est préférable d’utiliser la méthode `api.authentication.challengeWith()`. L’écran de sélection du facteur ne s’affiche pas si un seul facteur est transmis ou valide.
</Note>

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="factors" type="array of objects">
    Un tableau de facteurs.
  </ParamField>
</Expandable>

<div id="apiauthenticationenrollwithfactor-options">
  ### `api.authentication.enrollWith(factor, options)`
</div>

Demande l’inscription à l’authentification multifacteur à l’aide du facteur fourni et de facteurs supplémentaires.

Lorsqu’une inscription à l’authentification multifacteur est demandée, les Actions suivantes ne seront exécutées qu’une fois cette inscription
effectuée par l’utilisateur.

Si l’un des facteurs demandés a déjà été inscrit ou a fait l’objet d’une demande de vérification réussie dans la transaction en cours, il sera
ignoré.

Si un facteur qui n’est pas activé dans le tenant est demandé, il sera ignoré.
Si un facteur auquel l’utilisateur est déjà inscrit est demandé, il sera ignoré.
Si aucun des facteurs demandés n’est à la fois activé et non inscrit, la transaction
d’authentification échouera (c.-à-d. que la connexion ne sera pas terminée).

```js Enroll with additional factors theme={null}
api.authentication.enrollWith({
  type: 'otp'
}, {
  additionalFactors: [{
    type: 'push-notification'
  }, {
    type: 'phone'
  }]
});
```

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="factor" type="enrollmentfactorselector">
    Objet décrivant le type de facteur à utiliser pour les invites d’inscription initiales, ainsi que ses options.

    <Expandable title="propriétés du facteur">
      <ParamField body="type" type="string">
        Type de facteur d’authentification, par exemple `push-notification`, `phone`, `otp`, `webauthn-roaming`, `webauthn-platform` ou `recovery-code`.
        Valeurs autorisées : `otp`, `webauthn-platform`, `webauthn-roaming`, `recovery-code`, `push`, `push-notification`
      </ParamField>

      <ParamField body="options" type="dictionary">
        Options supplémentaires pour configurer un facteur d’un type donné.
        Facultatif.
      </ParamField>
    </Expandable>
  </ParamField>

  <ParamField body="options" type="enrollwithoptions">
    Options supplémentaires pouvant aussi inclure `additionalFactors` comme propriété.
    Facultatif.

    <Expandable title="propriétés des options">
      <ParamField body="additionalFactors" type="array of objects">
        Facultatif.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apiauthenticationenrollwithanyfactors">
  ### `api.authentication.enrollWithAny(factors)`
</div>

Demande l’inscription à l’authentification multifacteur à l’aide de l’un des facteurs fournis (en affichant d’abord un écran de sélection des facteurs).

Lorsqu’une inscription à l’authentification multifacteur est demandée, les Actions suivantes ne s’exécuteront pas tant que l’utilisateur n’aura pas terminé cette inscription.

Si l’un des facteurs demandés a déjà été inscrit avec succès dans la transaction en cours, il sera ignoré.

Si un facteur qui n’est pas activé dans le tenant est demandé, il sera ignoré.
Si un facteur auquel l’utilisateur est déjà inscrit est demandé, il sera ignoré.
Si aucun des facteurs demandés n’est à la fois activé et non inscrit, la transaction d’authentification échouera (c.-à-d. que la connexion ne se terminera pas).

<Note>
  S’il existe un facteur privilégié, il est préférable d’utiliser la méthode `api.authentication.enrollWith()`. L’écran de sélection des facteurs ne s’affichera pas si un seul facteur est transmis ou valide.
</Note>

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="factors" type="array of objects">
    Un tableau de facteurs supplémentaires.
  </ParamField>
</Expandable>

<div id="apiauthenticationrecordmethodprovider_url">
  ### `api.authentication.recordMethod(provider_url)`
</div>

Indique qu'une méthode d'authentification personnalisée a été complétée au cours de la
session actuelle. Cette méthode sera ensuite disponible dans le tableau
`event.authentication.methods` lors des prochaines connexions.

**IMPORTANT** : Cette API est accessible uniquement à partir de la fonction
`onContinuePostLogin` des Actions `PostLogin`. Autrement dit, elle peut servir à consigner
la complétion d'une méthode d'authentification personnalisée après avoir redirigé l'utilisateur à l'aide de
`api.redirect.sendUserTo()`.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="provider_url" type="string">
    Une URL `http:` ou `https:` qui représente de façon unique la méthode
    d'authentification complétée.
  </ParamField>
</Expandable>

<div id="apiauthenticationsetprimaryuserprimary_user_id">
  ### `api.authentication.setPrimaryUser(primary_user_id)`
</div>

Modifiez l’utilisateur principal de la transaction de connexion.

Dans les scénarios nécessitant la liaison d’utilisateurs, l’identité utilisée pour amorcer la connexion peut ne plus exister en tant qu’utilisateur distinct. Cette identité peut désormais être une identité secondaire d’un utilisateur existant. Dans de tels cas, la fonction `setPrimaryUser()` permet d’indiquer que le sujet de la connexion doit être modifié.

**IMPORTANT** : Une liaison de comptes non sécurisée peut permettre à des acteurs malveillants d’accéder à des comptes d’utilisateur légitimes.

**IMPORTANT** : L’identité utilisée pour authentifier la connexion *doit* faire partie des identités secondaires de l’utilisateur référencé par `primary_user_id`. Sinon, la connexion échouera et aucun jeton ne sera émis.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="primary_user_id" type="string">
    L’ID d’utilisateur de l’utilisateur pour lequel des jetons doivent être émis (la revendication `sub`).
  </ParamField>
</Expandable>

<div id="apiidtoken">
  ## `api.idToken`
</div>

Demande des modifications au jeton ID émis.

<div id="apiidtokensetcustomclaimkey-value">
  ### `api.idToken.setCustomClaim(key, value)`
</div>

Définit une revendication personnalisée dans le jeton ID qui sera émis à la fin du flux de connexion.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    Nom de la revendication (il peut être nécessaire d’utiliser une URL complète).
  </ParamField>

  <ParamField body="value" type="unknown">
    Valeur de la revendication.
  </ParamField>
</Expandable>

<div id="apimultifactor">
  ## `api.multifactor`
</div>

Activez ou désactivez l’exigence d’authentification multifacteur pour la tentative de connexion.

<div id="apimultifactorenableprovider-options">
  ### `api.multifactor.enable(provider, options)`
</div>

Activez l’authentification multifacteur pour ce flux de connexion. Une fois activée, les utilisateurs doivent répondre au
défi d’authentification multifacteur configuré. Le défi d’authentification multifacteur proprement dit est reporté à la
fin du flux de connexion.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="provider" type="string">
    Le nom du fournisseur multifacteur à utiliser ou la valeur `"any"` pour utiliser n’importe lequel
    des fournisseurs configurés.
    Valeurs autorisées : `none`, `guardian`, `google-authenticator`, `duo`, `any`
  </ParamField>

  <ParamField body="options" type="enablemultifactoroptions">
    Options supplémentaires permettant d’activer les défis d’authentification multifacteur.
    Facultatif.

    <Expandable title="propriétés des options">
      <ParamField body="allowRememberBrowser" type="boolean">
        Lorsque le fournisseur est défini sur `google-authenticator` ou `duo`, l’utilisateur reçoit une invite d’AMF une fois
        tous les 30 jours. Lorsque le fournisseur est défini sur `guardian`, l’invite d’AMF affiche une case à cocher d’inscription
        permettant aux utilisateurs de choisir de s’inscrire ou non. La valeur par défaut est `false`. Pour en savoir plus,
        consultez [personnaliser les pages d’authentification multifacteur](https://auth0.com/docs/secure/multi-factor-authentication/customize-mfa).
        Facultatif.
      </ParamField>

      <ParamField body="providerOptions" type="object">
        Options supplémentaires pour configurer le challenge, offertes uniquement pour le fournisseur `duo`.
        Facultatif.

        <Expandable title="propriétés de providerOptions">
          <ParamField body="host" type="string">
            Il s’agit de la valeur du nom d’hôte de l’API dans votre compte Duo.
          </ParamField>

          <ParamField body="ikey" type="string">
            Il s’agit de la valeur du Client ID (anciennement la clé d’intégration) dans votre compte Duo.
          </ParamField>

          <ParamField body="skey" type="string">
            Il s’agit de la valeur du secret client (anciennement la clé secrète) dans votre compte Duo.
          </ParamField>

          <ParamField body="username" type="string">
            Utilisez un attribut du profil comme nom d’utilisateur dans DuoSecurity. Cela est également utile si vos utilisateurs sont déjà inscrits auprès de Duo.
            Facultatif.
          </ParamField>
        </Expandable>
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apiredirect">
  ## `api.redirect`
</div>

Configurez et lancez des redirections externes.

<div id="apiredirectencodetokenoptions">
  ### `api.redirect.encodeToken(options)`
</div>

Crée un jeton de session pouvant servir de cible de redirection dans un paramètre de chaîne de requête (par l’intermédiaire de `sendUserTo`),
qui contient des données dont l’authenticité doit pouvoir être vérifiée par le endpoint cible. Le endpoint cible
peut vérifier l’authenticité et l’intégrité des données en vérifiant la signature du JWT
à l’aide d’un secret partagé.

Le secret partagé doit être stocké dans un **secret** de l’Action et peut être lu à l’emplacement
`event.secrets['<secret_name>']`.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="options" type="tokencreationoptions">
    Configure la façon dont les données sensibles sont encodées dans les paramètres de requête de l’URL
    obtenue.

    <Expandable title="propriétés des options">
      <ParamField body="expiresInSeconds" type="number">
        Nombre de secondes avant l’expiration de ce jeton.
        Facultatif.
      </ParamField>

      <ParamField body="payload" type="dictionary">
        Les données destinées à être transmises à la cible de redirection et dont l’authenticité
        et l’intégrité doivent pouvoir être vérifiées.
      </ParamField>

      <ParamField body="secret" type="string">
        Un secret utilisé pour signer un JWT partagé avec la cible de redirection. La
        valeur du secret doit être stockée dans un **secret** et récupérée à l’aide de
        `event.secrets['<secret_name>']`.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apiredirectsendusertourl-options">
  ### `api.redirect.sendUserTo(url, options)`
</div>

Déclenche une redirection du navigateur vers l’`url` cible dans le pipeline de connexion dès la fin de cette action. La méthode d’assistance `createUrl` permet de simplifier l’encodage des données sous forme de paramètre de requête dans l’`url` cible, afin que le endpoint cible puisse en vérifier l’authenticité et l’intégrité.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="url" type="string" />

  <ParamField body="options" type="sendusertooptions">
    Facultatif.

    <Expandable title="propriétés des options">
      <ParamField body="query" type="dictionary">
        Objet représentant des paramètres de chaîne de requête supplémentaires à ajouter à l’URL de redirection.
        Facultatif.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apiredirectcanredirect">
  ### `api.redirect.canRedirect()`
</div>

Indique si la transaction actuelle permet de rediriger l’utilisateur. Certains protocoles, comme
`oauth2-resource-owner` et `oauth2-refresh-token`, ne prennent pas en charge
la redirection de l’utilisateur. Une requête avec `prompt=none` ne permet pas non plus de rediriger l’utilisateur.

<div id="apiredirectvalidatetokenoptions">
  ### `api.redirect.validateToken(options)`
</div>

Récupère les données encodées dans un token JWT transmis au point de terminaison `/continue`, tout en vérifiant
l’authenticité et l’intégrité de ces données.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="options" type="validatesessiontokenoptions">
    Options permettant de récupérer les données encodées dans un token JWT transmis au
    point de terminaison `/continue` après une redirection.

    <Expandable title="propriétés des options">
      <ParamField body="secret" type="string" />

      <ParamField body="tokenParameterName" type="string">
        Le nom du paramètre de requête ou de corps envoyé au point de terminaison /continue.
        Facultatif.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apiuser">
  ## `api.user`
</div>

Modifiez les métadonnées de l’utilisateur qui se connecte.

<div id="apiusersetappmetadatakey-value">
  ### `api.user.setAppMetadata(key, value)`
</div>

Définit les métadonnées propres à l’application de l’utilisateur qui se connecte.

Remarque : cette méthode ne doit pas être utilisée dans les callbacks. Son appel ne met pas les métadonnées à jour immédiatement.
Vous pouvez l’appeler plusieurs fois dans différentes actions du même flow, et le moteur regroupera les
modifications pour mettre les métadonnées à jour en une seule fois avant la fin du flow. Cette fonction ne fonctionne qu’avec des métadonnées
au format objet.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    La propriété de métadonnées à définir.
  </ParamField>

  <ParamField body="value" type="unknown">
    La valeur de la propriété de métadonnées. Elle peut être définie à `null` pour supprimer la
    propriété de métadonnées.
  </ParamField>
</Expandable>

<div id="apiusersetusermetadatakey-value">
  ### `api.user.setUserMetadata(key, value)`
</div>

Définit les métadonnées générales de l’utilisateur qui se connecte.

Remarque : cette méthode ne doit pas être utilisée dans les callbacks. Son appel ne met pas immédiatement à jour les métadonnées.
Vous pouvez l’appeler plusieurs fois dans différentes actions du même flow; le moteur regroupera les
modifications et mettra à jour les métadonnées en une seule fois avant la fin du flow. Cette fonction ne fonctionne qu’avec des métadonnées au
format objet.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    La propriété de métadonnées à définir.
  </ParamField>

  <ParamField body="value" type="unknown">
    La valeur de la propriété de métadonnées. Cette valeur peut être définie à `null` pour supprimer la
    propriété de métadonnées.
  </ParamField>
</Expandable>

<div id="apicache">
  ## `api.cache`
</div>

Modifiez le cache.

<div id="apicachedeletekey">
  ### `api.cache.delete(key)`
</div>

Supprime l’enregistrement associé à la valeur mise en cache pour la
clé fournie, s’il existe.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    La clé de l’enregistrement du cache à supprimer.
  </ParamField>
</Expandable>

<div id="apicachegetkey">
  ### `api.cache.get(key)`
</div>

Récupère l’enregistrement associé à la clé fournie, s’il existe.
Si un enregistrement est trouvé, la valeur mise en cache se trouve
dans la propriété `value` de l’objet renvoyé.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    La clé de l’enregistrement stocké dans le cache.
  </ParamField>
</Expandable>

<div id="apicachesetkey-value-options">
  ### `api.cache.set(key, value, options)`
</div>

Stocke ou met à jour une valeur de type chaîne dans le cache à la clé indiquée.

Les valeurs stockées dans ce cache sont limitées au Trigger dans lequel elles
sont définies. Elles sont soumises aux [limites du cache Actions](https://auth0.com/docs/customize/actions/limitations).

Les valeurs stockées de cette façon auront une durée de vie pouvant aller *jusqu’aux* valeurs
`ttl` ou `expires_at` indiquées. Si aucune durée de vie n’est précisée, une durée de vie
par défaut de 15 minutes sera utilisée. Les durées de vie ne peuvent pas dépasser la durée maximale
indiquée dans les [limites du cache Actions](https://auth0.com/docs/customize/actions/limitations).

**Important** : Ce cache est conçu pour stocker des données éphémères à courte durée de vie. Les éléments pourraient ne pas être
disponibles lors de transactions ultérieures, même s’ils n’ont pas encore atteint la durée de vie indiquée.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    La clé de l’enregistrement à stocker.
  </ParamField>

  <ParamField body="value" type="string">
    La valeur de l’enregistrement à stocker.
  </ParamField>

  <ParamField body="options" type="cachesetoptions">
    Options permettant d’ajuster le comportement du cache.
    Facultatif.

    <Expandable title="propriétés d’options">
      <ParamField body="expires_at" type="number">
        La date et l’heure d’expiration absolues, en millisecondes depuis l’époque Unix.
        Bien que les enregistrements en cache puissent être évincés plus tôt, ils ne
        seront jamais conservés au-delà de la valeur `expires_at` indiquée.

        *Remarque* : Cette valeur ne doit pas être fournie si une valeur a également été
        fournie pour `ttl`. Si les deux options sont fournies, la date d’expiration
        la plus rapprochée sera utilisée.
        Facultatif.
      </ParamField>

      <ParamField body="ttl" type="number">
        La durée de vie de cette entrée de cache, en millisecondes.
        Bien que les valeurs en cache puissent être évincées plus tôt, elles ne
        seront jamais conservées au-delà de la valeur `ttl` indiquée.

        *Remarque* : Cette valeur ne doit pas être fournie si une valeur a également été
        fournie pour `expires_at`. Si les deux options sont fournies, la date d’expiration
        la plus rapprochée sera utilisée.
        Facultatif.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apisamlresponse">
  ## `api.samlResponse`
</div>

Configurez des configurations et des attributs SAML personnalisés.

<div id="apisamlresponsesetattributeattribute-value">
  ### `api.samlResponse.setAttribute(attribute, value)`
</div>

Définit des attributs dans l’assertion SAML émise pour l’utilisateur authentifié.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="attribute" type="string">
    L’attribut SAML à définir.
  </ParamField>

  <ParamField body="value" type="object">
    La valeur du claim SAML. Si vous définissez cette valeur sur `null` ou
    `undefined`, le claim sera supprimé de l’assertion.
  </ParamField>
</Expandable>

<div id="apisamlresponsesetaudienceaudience">
  ### `api.samlResponse.setAudience(audience)`
</div>

Audience de l’assertion SAML.
Par défaut, utilise l’émetteur de la SAMLRequest.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="audience" type="string" />
</Expandable>

<div id="apisamlresponsesetrecipientrecipient">
  ### `api.samlResponse.setRecipient(recipient)`
</div>

Destinataire de l’assertion SAML (SubjectConfirmationData).
Par défaut, il s’agit de l’AssertionConsumerUrl de la SAMLRequest ou de l’URL de rappel si aucune SAMLRequest n’a été envoyée.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="recipient" type="string" />
</Expandable>

<div id="apisamlresponsesetcreateupnclaimcreateupnclaim">
  ### `api.samlResponse.setCreateUpnClaim(createUpnClaim)`
</div>

Détermine si un claim UPN doit être créé. La valeur par défaut est true.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="createUpnClaim" type="boolean" />
</Expandable>

<div id="apisamlresponsesetpassthroughclaimswithnomappingpassthroughclaimswithnomapping">
  ### `api.samlResponse.setPassthroughClaimsWithNoMapping(passthroughClaimsWithNoMapping)`
</div>

Si la valeur est true (par défaut), Auth0 transmet dans l’assertion de sortie chaque claim qui n’est pas mappé au profil commun.
Si la valeur est false, ces claims ne sont pas mappés.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="passthroughClaimsWithNoMapping" type="boolean" />
</Expandable>

<div id="apisamlresponsesetmapunknownclaimsasismapunknownclaimsasis">
  ### `api.samlResponse.setMapUnknownClaimsAsIs(mapUnknownClaimsAsIs)`
</div>

Si passthroughClaimsWithNoMapping est vrai et que cette valeur est fausse (valeur par défaut), Auth0 ajoute le préfixe `http://schema.auth0.com` à chaque claim qui n’est pas mappé au profil commun.
Si elle est vraie, le claim est transmis tel quel.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="mapUnknownClaimsAsIs" type="boolean" />
</Expandable>

<div id="apisamlresponsesetmapidentitiesmapidentities">
  ### `api.samlResponse.setMapIdentities(mapIdentities)`
</div>

Si la valeur est true (par défaut), ajoute des renseignements supplémentaires au token, comme le Provider (Google, ADFS, AD, etc.) et le jeton d’accès, s’il est disponible.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="mapIdentities" type="boolean" />
</Expandable>

<div id="apisamlresponsesetsignaturealgorithmsignaturealgorithm">
  ### `api.samlResponse.setSignatureAlgorithm(signatureAlgorithm)`
</div>

Algorithme de signature utilisé pour signer l’assertion ou la réponse SAML.
La valeur par défaut est rsa-sha256.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="signatureAlgorithm" type="string">
    Valeur autorisée : `rsa-sha256`
  </ParamField>
</Expandable>

<div id="apisamlresponsesetsignaturealgorithmsignaturealgorithm">
  ### `api.samlResponse.setSignatureAlgorithm(signatureAlgorithm)`
</div>

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="signatureAlgorithm" type="string">
    Valeur autorisée : `rsa-sha1`
  </ParamField>
</Expandable>

<div id="apisamlresponsesetdigestalgorithmdigestalgorithm">
  ### `api.samlResponse.setDigestAlgorithm(digestAlgorithm)`
</div>

Algorithme de hachage utilisé pour calculer le condensé de l’assertion ou de la réponse SAML.
La valeur par défaut est sha256.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="digestAlgorithm" type="string">
    Valeurs autorisées : `sha256`
  </ParamField>
</Expandable>

<div id="apisamlresponsesetdigestalgorithmdigestalgorithm">
  ### `api.samlResponse.setDigestAlgorithm(digestAlgorithm)`
</div>

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="digestAlgorithm" type="string">
    Valeur autorisée : `sha1`
  </ParamField>
</Expandable>

<div id="apisamlresponsesetdestinationdestination">
  ### `api.samlResponse.setDestination(destination)`
</div>

Destination de la réponse SAML. Si elle n’est pas précisée, la valeur utilisée sera l’AssertionConsumerUrl de SAMLRequest ou l’URL de rappel en l’absence de SAMLRequest.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="destination" type="string" />
</Expandable>

<div id="apisamlresponsesetlifetimeinsecondslifetimeinseconds">
  ### `api.samlResponse.setLifetimeInSeconds(lifetimeInSeconds)`
</div>

Durée de validité du token.
La valeur par défaut est de 3 600 secondes (1 heure).

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="lifetimeInSeconds" type="number" />
</Expandable>

<div id="apisamlresponsesetsignresponsesignresponse">
  ### `api.samlResponse.setSignResponse(signResponse)`
</div>

Détermine si la réponse SAML doit être signée.
Par défaut, l’assertion SAML est signée, mais pas la réponse SAML.
Si la valeur est vraie, la réponse SAML est signée plutôt que l’assertion SAML.
La valeur par défaut est faux.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="signResponse" type="boolean" />
</Expandable>

<div id="apisamlresponsesetnameidentifierformatnameidentifierformat">
  ### `api.samlResponse.setNameIdentifierFormat(nameIdentifierFormat)`
</div>

La valeur par défaut est urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="nameIdentifierFormat" type="string" />
</Expandable>

<div id="apisamlresponsesetnameidentifierprobesnameidentifierprobes">
  ### `api.samlResponse.setNameIdentifierProbes(nameIdentifierProbes)`
</div>

Auth0 tentera d’utiliser chacun des attributs de ce tableau, dans l’ordre.
Si l’un d’eux a une valeur, Auth0 l’utilisera comme Subject/NameID.

L’ordre est le suivant :

* [http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier](http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier) (mappé depuis user\_id),
  * [http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress](http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress) (mappé depuis email),
  * [http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name](http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name) (mappé depuis name).

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="nameIdentifierProbes" type="tableau de chaînes de caractères" />
</Expandable>

<div id="apisamlresponsesetauthncontextclassrefauthncontextclassref">
  ### `api.samlResponse.setAuthnContextClassRef(authnContextClassRef)`
</div>

La valeur par défaut est urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="authnContextClassRef" type="string" />
</Expandable>

<div id="apisamlresponsesetsigningcertsigningcert">
  ### `api.samlResponse.setSigningCert(signingCert)`
</div>

Indique, de façon facultative, le certificat de clé publique utilisé pour valider les requêtes SAML.
S’il est défini, les requêtes SAML devront être signées.
Voici un exemple de valeur : « -----BEGIN CERTIFICATE-----\nMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n\[..toutes les autres lignes..]-----END CERTIFICATE-----\n ».

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="signingCert" type="string" />
</Expandable>

<div id="apisamlresponsesetincludeattributenameformatincludeattributenameformat">
  ### `api.samlResponse.setIncludeAttributeNameFormat(includeAttributeNameFormat)`
</div>

Lorsque cette valeur est définie sur true, le NameFormat est déduit du nom de l’attribut. Les valeurs possibles pour NameFormat sont urn:oasis:names:tc:SAML:2.0:attrname-format:uri, urn:oasis:names:tc:SAML:2.0:attrname-format:basic et urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified.
Lorsqu’elle est définie sur faux, le NameFormat de l’attribut n’est pas inclus dans l’assertion.
La valeur par défaut est true.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="includeAttributeNameFormat" type="boolean" />
</Expandable>

<div id="apisamlresponsesettypedattributestypedattributes">
  ### `api.samlResponse.setTypedAttributes(typedAttributes)`
</div>

Lorsque cette option est définie sur true, le xs:type de l’élément est déduit. Les types sont xs:string, xs:boolean, xs:double et xs:anyType.
Lorsqu’elle est définie sur faux, tous les xs:type sont xs:anyType.
La valeur par défaut est true.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="typedAttributes" type="boolean" />
</Expandable>

<div id="apisamlresponsesetencryptioncertencryptioncert">
  ### `api.samlResponse.setEncryptionCert(encryptionCert)`
</div>

Spécifiez facultativement un certificat à utiliser pour chiffrer l’assertion SAML.
Le certificat doit être fourni par le fournisseur de services.
Le certificat et la clé publique doivent tous deux être spécifiés.
Voici un exemple de valeur : « -----BEGIN CERTIFICATE-----\nMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n\[..toutes les autres lignes..]-----END CERTIFICATE-----\n ».

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="encryptionCert" type="string" />
</Expandable>

<div id="apisamlresponsesetencryptionpublickeyencryptionpublickey">
  ### `api.samlResponse.setEncryptionPublicKey(encryptionPublicKey)`
</div>

Vous pouvez spécifier une clé publique servant à chiffrer l’assertion SAML.
La clé publique doit être obtenue auprès du fournisseur de services.
La clé publique et le certificat doivent tous deux être fournis.
Voici un exemple de valeur : "-----BEGIN PUBLIC KEY-----\nnMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n\[..toutes les autres lignes..]-----END PUBLIC KEY-----\n".

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="encryptionPublicKey" type="string" />
</Expandable>

<div id="apisamlresponsesetcertcert">
  ### `api.samlResponse.setCert(cert)`
</div>

Par défaut, Auth0 utilise la paire de clés privée/publique attribuée à votre tenant pour signer les réponses SAML ou les assertions.
Dans certains scénarios très précis, vous pourriez souhaiter fournir votre propre certificat et votre propre clé privée.

Le certificat et la clé privée doivent tous deux être spécifiés.
Voici un exemple de valeur : « -----BEGIN CERTIFICATE-----\nMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n\[..toutes les autres lignes..]-----END CERTIFICATE-----\n ».

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="cert" type="string" />
</Expandable>

<div id="apisamlresponsesetkeykey">
  ### `api.samlResponse.setKey(key)`
</div>

Par défaut, Auth0 utilise la paire de clés privée/publique attribuée à votre tenant pour signer les réponses SAML ou les assertions.
Dans certains scénarios très précis, vous pourriez souhaiter fournir votre propre certificat et votre propre clé privée.

Comme cette clé privée est sensible, **nous recommandons d’utiliser la fonctionnalité Add Secret d’Actions**.
Pour en savoir plus, consultez cette page : [https://auth0.com/docs/customize/actions/write-your-first-action#add-a-secret](https://auth0.com/docs/customize/actions/write-your-first-action#add-a-secret)

Le certificat et la clé privée doivent tous deux être fournis.
Voici un exemple de valeur : "-----BEGIN PRIVATE KEY-----\nnMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n\[..toutes les autres lignes..]-----END PRIVATE KEY-----\n".

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string" />
</Expandable>

<div id="apisamlresponsesetrelaystaterelaystate">
  ### `api.samlResponse.setRelayState(relayState)`
</div>

Indiquez facultativement un RelayState à utiliser pour retourner vers le fournisseur de services.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="relayState" type="string" />
</Expandable>

<div id="apisamlresponsesetissuerissuer">
  ### `api.samlResponse.setIssuer(issuer)`
</div>

Spécifiez facultativement l’émetteur de l’assertion SAML.
La valeur par défaut est urn:auth0:TENANT

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="issuer" type="string" />
</Expandable>

<div id="apisamlresponsesetencryptionalgorithmencryptionalgorithm">
  ### `api.samlResponse.setEncryptionAlgorithm(encryptionAlgorithm)`
</div>

Définit l’algorithme de chiffrement de l’assertion SAML.
La valeur par défaut est aes256-cbc.

```js Set the encryption algorithm to aes256-gcm (recommended) theme={null}
api.samlResponse.setEncryptionAlgorithm('aes256-gcm');
```

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="encryptionAlgorithm" type="string">
    * L’algorithme à utiliser (aes256-gcm est recommandé)
      Valeur autorisée : `aes256-gcm`
  </ParamField>
</Expandable>

<div id="apisamlresponsesetencryptionalgorithmencryptionalgorithm">
  ### `api.samlResponse.setEncryptionAlgorithm(encryptionAlgorithm)`
</div>

```js Set encryption algorithm to aes256-cbc (not recommended) theme={null}
api.samlResponse.setEncryptionAlgorithm('aes256-cbc');
```

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="encryptionAlgorithm" type="string">
    * L’algorithme à utiliser (aes256-cbc est désuet)
      Valeurs autorisées : `aes256-cbc`
  </ParamField>
</Expandable>

<div id="apivalidation">
  ## `api.validation`
</div>

Empêche un utilisateur de se connecter en générant une erreur de validation.

<div id="apivalidationerrorerrorcode-errormessage">
  ### `api.validation.error(errorCode, errorMessage)`
</div>

Génère une erreur lorsqu’une erreur de validation se produit.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="errorCode" type="string">
    Un code d’erreur défini par le client pour l’erreur de validation.
  </ParamField>

  <ParamField body="errorMessage" type="string">
    Un message défini par le client pour l’erreur de validation.
  </ParamField>
</Expandable>

<div id="apirules">
  ## `api.rules`
</div>

Indique si une règle a été exécutée dans la transaction en cours.

<div id="apiruleswasexecutedruleid">
  ### `api.rules.wasExecuted(ruleId)`
</div>

Vérifie si une règle ayant un ID donné a été exécutée au cours de la transaction actuelle.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="ruleId" type="string">
    L’ID de la règle.
  </ParamField>
</Expandable>

<div id="apiprompt">
  ## `api.prompt`
</div>

Affiche un prompt personnalisé.

<div id="apipromptrenderpromptid-promptoptions">
  ### `api.prompt.render(promptId, promptOptions)`
</div>

Affiche un prompt personnalisé.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="promptId" type="string">
    L’ID du prompt.
  </ParamField>

  <ParamField body="promptOptions" type="promptoptions">
    Les options d’affichage.
    Facultatif.

    <Expandable title="propriétés de promptOptions">
      <ParamField body="fields" type="dictionary">
        Paires clé-valeur servant à renseigner les valeurs des champs (côté client).
        Facultatif.
      </ParamField>

      <ParamField body="vars" type="dictionary">
        Paires clé-valeur servant à injecter des variables (côté serveur).
        Facultatif.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apirefreshtoken">
  ## `api.refreshToken`
</div>

Modifie le jeton d’actualisation de l’utilisateur actuel.

<div id="apirefreshtokenrevokereason">
  ### `api.refreshToken.revoke(reason)`
</div>

\[Clients d’entreprise] Révoque le jeton d’actualisation de l’utilisateur actuel et marque la tentative d’échange de jeton d’actualisation en cours comme refusée. Cela empêchera
l’utilisateur final de terminer le flux d’échange de jeton d’actualisation et révoquera le jeton d’actualisation utilisé.
Le flux d’échange de jeton d’actualisation s’arrêtera immédiatement une fois cette action terminée, et aucune autre action ne sera exécutée.

Cette méthode peut être utilisée uniquement pendant le flux d’échange de jeton d’actualisation, lorsque `event.transaction.protocol === "oauth2-refresh-token"`.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="reason" type="string">
    Une explication claire du rejet de l’échange de jeton d’actualisation. Celle-ci peut être affichée
    directement dans les interfaces destinées aux utilisateurs finaux.
  </ParamField>
</Expandable>

<div id="apirefreshtokensetexpiresatabsolute">
  ### `api.refreshToken.setExpiresAt(absolute)`
</div>

\[Clients d’entreprise] Définit une nouvelle date d’expiration absolue pour le jeton d’actualisation actuel.
L’expiration ne peut pas dépasser la durée de vie maximale du jeton d’actualisation définie dans les paramètres.
Lorsque cette méthode est appelée plusieurs fois, la date d’expiration la plus rapprochée est utilisée.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="absolute" type="number">
    Obligatoire. Nouvelle date d’expiration absolue, en millisecondes depuis l’époque Unix, après laquelle le jeton d’actualisation est considéré comme non valide.
  </ParamField>
</Expandable>

<div id="apirefreshtokensetidleexpiresatinactivity">
  ### `api.refreshToken.setIdleExpiresAt(inactivity)`
</div>

\[Clients d’entreprise] Définit un nouveau délai d’expiration d’inactivité pour le jeton d’actualisation actuel.
L’expiration ne peut pas dépasser la durée de vie absolue maximale du jeton d’actualisation définie dans les paramètres.
Lorsqu’elle est appelée plusieurs fois, la date d’expiration la plus proche est utilisée.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="inactivity" type="number">
    Obligatoire. Nouveau délai d’inactivité, en millisecondes depuis l’époque Unix, après lequel le jeton d’actualisation est considéré comme non valide
    s’il n’est pas utilisé pendant cette période.
  </ParamField>
</Expandable>

<div id="apirefreshtokensetmetadatakey-value">
  ### `api.refreshToken.setMetadata(key, value)`
</div>

Définit une paire clé-valeur dans l’objet de métadonnées du jeton d’actualisation actuel.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    Obligatoire. La clé à définir dans l’objet de métadonnées.
  </ParamField>

  <ParamField body="value" type="string">
    Obligatoire. La valeur à définir pour la clé dans l’objet de métadonnées. Les valeurs null supprimeront la clé de métadonnées fournie.
  </ParamField>
</Expandable>

<div id="apirefreshtokendeletemetadatakey">
  ### `api.refreshToken.deleteMetadata(key)`
</div>

Supprime une clé de l’objet de métadonnées du jeton d’actualisation courant.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    Obligatoire : la clé à supprimer de l’objet de métadonnées.
  </ParamField>
</Expandable>

<div id="apirefreshtokenevictmetadata">
  ### `api.refreshToken.evictMetadata()`
</div>

Supprime toutes les clés de l’objet de métadonnées du jeton d’actualisation courant.

<div id="apisession">
  ## `api.session`
</div>

Demander la modification de la session de l’utilisateur actuel.

<div id="apisessionrevokereason-options">
  ### `api.session.revoke(reason, options)`
</div>

\[Clients d’entreprise] Révoque la session de l’utilisateur actuel et marque la tentative de connexion en cours comme refusée. Cela empêchera
l’utilisateur final de terminer le flux de connexion et révoquera sa session. Le flux de connexion s’arrêtera immédiatement
à la fin de cette action, et aucune autre Action ne sera exécutée.

```js Revoke the session while preserving refresh tokens theme={null}
api.session.revoke('reason', { preserveRefreshTokens: true });
```

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="reason" type="string">
    Une explication compréhensible du rejet de la connexion. Elle peut être affichée
    directement dans les interfaces destinées aux utilisateurs finaux.
  </ParamField>

  <ParamField body="options" type="sessionrevocationoptions">
    Facultatif.

    <Expandable title="propriétés des options">
      <ParamField body="preserveRefreshTokens" type="boolean">
        La valeur par défaut est « faux ». Si la valeur est « vrai », le système met fin à la session et conserve les jetons d’actualisation. L’application peut continuer à obtenir des jetons d’accès pendant toute la durée de validité du jeton d’actualisation.
        Facultatif.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apisessionsetexpiresatabsolute">
  ### `api.session.setExpiresAt(absolute)`
</div>

\[Clients d’entreprise] Définit une nouvelle date d’expiration absolue pour la session actuelle.
L’expiration ne peut pas dépasser la durée de vie maximale de la session définie dans les paramètres du tenant.
Lorsqu’elle est appelée plusieurs fois, la date d’expiration la plus rapprochée est utilisée.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="absolute" type="number">
    Obligatoire. Nouvelle date d’expiration absolue, en millisecondes depuis l’époque Unix, après laquelle la session est considérée comme non valide.
  </ParamField>
</Expandable>

<div id="apisessionsetidleexpiresatinactivity">
  ### `api.session.setIdleExpiresAt(inactivity)`
</div>

\[client d’entreprise] Définit un nouveau délai d’expiration d’inactivité pour la session actuelle.
L’expiration ne peut pas être fixée au-delà de la durée de vie maximale absolue de la session configurée dans les paramètres du tenant.
Si elle est appelée plusieurs fois, l’heure d’expiration la plus proche sera utilisée.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="inactivity" type="number">
    Obligatoire. Nouvelle heure d’expiration liée à l’inactivité, en millisecondes depuis l’époque Unix, après laquelle la session sera considérée comme non valide en l’absence
    d’interaction de l’utilisateur durant cette période.
  </ParamField>
</Expandable>

<div id="apisessionsetcookiemodemode">
  ### `api.session.setCookieMode(mode)`
</div>

\[Clients d’entreprise] \[Accès anticipé] Définit le mode du cookie de la session actuelle, qui peut être « persistent » ou « non-persistent » (éphémère).
Ce paramètre détermine la façon dont le cookie de session est géré dans le navigateur :

* « persistent » : le cookie est conservé jusqu’à son expiration ou sa suppression par l’utilisateur.
* « non-persistent » (éphémère) : le cookie est supprimé à la fermeture du navigateur.

Si plusieurs appels à setCookieMode sont effectués, seul le dernier est pris en compte. Si « non-persistent » est défini, le cookie est supprimé à la fermeture du navigateur. Toutefois, la session demeure valide jusqu’à l’atteinte de son délai d’expiration absolu ou d’inactivité
ou jusqu’à sa révocation au moyen des API disponibles. Pour en savoir plus sur les modes de cookie, consultez notre documentation.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="mode" type="string">
    Obligatoire. Mode du cookie de la session actuelle.
    Peut être « persistent » ou « non-persistent » (éphémère).
    Valeurs autorisées : `persistent`, `non-persistent`
  </ParamField>
</Expandable>

<div id="apisessionsetmetadatakey-value">
  ### `api.session.setMetadata(key, value)`
</div>

\[client d’entreprise] \[Accès anticipé] Définit une paire clé-valeur dans l’objet de métadonnées de la session en cours.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    Obligatoire. La clé à définir dans l’objet de métadonnées.
  </ParamField>

  <ParamField body="value" type="string">
    Obligatoire. La valeur à définir pour la clé dans l’objet de métadonnées. Une valeur null supprime la clé de métadonnées indiquée.
  </ParamField>
</Expandable>

<div id="apisessiondeletemetadatakey">
  ### `api.session.deleteMetadata(key)`
</div>

\[Clients d’entreprise] \[Accès anticipé] Supprime une clé de l’objet de métadonnées de la session actuelle.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    Obligatoire. Clé à supprimer de l’objet de métadonnées.
  </ParamField>
</Expandable>

<div id="apisessionevictmetadata">
  ### `api.session.evictMetadata()`
</div>

\[client d’entreprise] \[Accès anticipé] Supprime toutes les clés de l’objet de métadonnées de la session actuelle.

<div id="apitransaction">
  ## `api.transaction`
</div>

Modifiez la transaction.

<div id="apitransactionsetmetadatakey-value">
  ### `api.transaction.setMetadata(key, value)`
</div>

Stocke ou met à jour la valeur associée à une clé donnée dans les métadonnées de la transaction.

Les métadonnées modifiées à l’aide de cette méthode sont mises à jour en temps réel dans l’objet
`event.transaction.metadata`.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    La clé de la propriété à définir.
  </ParamField>

  <ParamField body="value" type="object">
    La valeur de la propriété. Elle peut être définie à `null` pour supprimer la
    propriété de métadonnées.
  </ParamField>
</Expandable>

<div id="apigroups">
  ## `api.groups`
</div>

Obtenir des renseignements sur l’appartenance des utilisateurs aux groupes.

<div id="apigroupsgetusergroupsparams">
  ### `api.groups.getUserGroups(params)`
</div>

Récupère la liste paginée des groupes auxquels l’utilisateur appartient.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="params" type="getusergroupsparams">
    * Objet contenant les options de pagination.
      Facultatif.

    <Expandable title="propriétés de params">
      <ParamField body="take" type="number">
        Facultatif.
      </ParamField>

      <ParamField body="from" type="string">
        Facultatif.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apigroupshasgroupmembershipgroups">
  ### `api.groups.hasGroupMembership(groups)`
</div>

Vérifie si l’utilisateur est membre de l’un des groupes indiqués et fournit des détails
sur les groupes correspondants, le cas échéant.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="groups" type="tableau de chaînes de caractères">
    * Un tableau d’identifiants de groupes (ID ou noms) à utiliser pour vérifier l’appartenance.
  </ParamField>
</Expandable>

<div id="apiroles">
  ## `api.roles`
</div>

Obtenir des renseignements sur les attributions de rôles aux utilisateurs.

<div id="apirolesgetusereffectiverolesparams">
  ### `api.roles.getUserEffectiveRoles(params)`
</div>

Renvoie tous les rôles attribués à un utilisateur, directement ou par son appartenance à un groupe,
et éventuellement limités à une organisation, avec pagination par checkpoint.

```js Fetch the first page of roles theme={null}
const result = await api.roles.getUserEffectiveRoles({ take: 50 });
console.log(result.roles);
```

```js Paginate through roles theme={null}
let cursor;
do {
  const result = await api.roles.getUserEffectiveRoles({ take: 100, from: cursor });
  console.log(result.roles);
  cursor = result.next;
} while (cursor);
```

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="params" type="getusereffectiverolesparams">
    * Paramètres de pagination par point de reprise.
      Facultatif.

    <Expandable title="propriétés de params">
      <ParamField body="take" type="number">
        Le nombre maximal de rôles à renvoyer (jusqu’à 100).
        Facultatif.
      </ParamField>

      <ParamField body="from" type="string">
        Jeton de pagination provenant du champ `next` de la réponse précédente. Utilisez-le pour récupérer la page de résultats suivante.
        Facultatif.
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apirolesgetusereffectiverolesbyidsids">
  ### `api.roles.getUserEffectiveRolesByIds(ids)`
</div>

Renvoie les rôles attribués à un utilisateur, directement ou par son appartenance à un groupe,
éventuellement limités à une organisation et filtrés par ID de rôle.

```js Filter roles by specific IDs theme={null}
const result = await api.roles.getUserEffectiveRolesByIds([
  'rol_1234567890',
  'rol_0987654321'
]);
console.log(result.roles);
```

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="ids" type="tableau de chaînes de caractères">
    * Tableau d’ID de rôles à utiliser pour filtrer (jusqu’à 100).
  </ParamField>
</Expandable>

<div id="apirolesgetusereffectiverolesbynamesnames">
  ### `api.roles.getUserEffectiveRolesByNames(names)`
</div>

Renvoie les rôles attribués à un utilisateur, directement ou par l’intermédiaire de son appartenance à un groupe,
éventuellement limités à une organisation et filtrés par nom de rôle.

```js Filter roles by specific names theme={null}
const result = await api.roles.getUserEffectiveRolesByNames([
  'Admin',
  'Editor'
]);
console.log(result.roles);
```

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="names" type="tableau de chaînes de caractères">
    * Tableau de noms de rôles à utiliser comme filtre (maximum de 50).
  </ParamField>
</Expandable>
