> ## 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 credentials-exchange des Actions.

# Objet API

L’objet API du déclencheur credentials-exchange des Actions comprend :

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

Gérez la disponibilité du jeton d’accès.

<div id="apiaccessdenycode-reason">
  ### `api.access.deny(code, reason)`
</div>

Marque l’échange de jetons en cours comme rejeté.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="code" type="string">
    Le code d’erreur propre au protocole justifiant le rejet de la connexion.
    Valeurs autorisées : `invalid_scope`, `invalid_request`, `server_error`
  </ParamField>

  <ParamField body="reason" type="string">
    Une explication compréhensible par une personne du rejet de l’autorisation du jeton d’accès.
    Facultatif.
  </ParamField>
</Expandable>

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

Demande de 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.

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="key" type="string">
    Nom de la revendication (il peut devoir s’agir d’une URL complète).
  </ParamField>

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

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

Modifiez le cache.

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

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

**Paramètres**

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

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

Récupère un enregistrement décrivant une valeur mise en cache associée à 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 sous 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 [Actions Cache Limits](https://auth0.com/docs/customize/actions/limitations).

Les valeurs stockées de cette façon auront une durée de vie allant *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 [Actions Cache Limits](https://auth0.com/docs/customize/actions/limitations).

**Important** : Ce cache est conçu pour stocker des données éphémères à court terme. Les éléments peuvent ne pas être
disponibles lors de transactions ultérieures, même si leur durée de vie n’est pas encore écoulé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">
        L’heure d’expiration absolue, en millisecondes depuis l’époque Unix.
        Bien que les enregistrements mis en cache puissent être évincés plus tôt, ils ne
        seront jamais conservés au-delà de la valeur `expires_at` fournie.

        *Remarque* : Cette valeur ne doit pas être fournie si une valeur a aussi é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 mises en cache puissent être évincées plus tôt, elles ne
        seront jamais conservées au-delà de la valeur `ttl` fournie.

        *Remarque* : Cette valeur ne doit pas être fournie si une valeur a aussi é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="apitransaction">
  ## `api.transaction`
</div>

\[Accès anticipé] Modifiez la transaction.

<div id="apitransactionaddtargetscopescope">
  ### `api.transaction.addTargetScope(scope)`
</div>

\[Accès anticipé] Ajoute une portée à l’ensemble des portées cibles. Les portées ajoutées sont recoupées avec l’autorisation du
client une fois toutes les Actions terminées. Les portées qui ne figurent pas dans l’autorisation
sont retirées silencieusement du jeton d’accès final.

```js theme={null}
exports.onExecuteCredentialsExchange = async (event, api) => {
  api.transaction.addTargetScope('read:reports');
};
```

**Paramètres**

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

<div id="apitransactionremovetargetscopescope">
  ### `api.transaction.removeTargetScope(scope)`
</div>

\[Accès anticipé] Supprime une portée de l’ensemble de portées cible.

```js theme={null}
exports.onExecuteCredentialsExchange = async (event, api) => {
  api.transaction.removeTargetScope('admin:full');
};
```

**Paramètres**

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

<div id="apitransactionsettargetscopesscopes">
  ### `api.transaction.setTargetScopes(scopes)`
</div>

\[Accès anticipé] Remplace l’ensemble des portées cibles. Les nouvelles portées sont combinées avec
l’autorisation du client une fois toutes les Actions terminées. Les portées absentes de
l’autorisation sont automatiquement exclues du jeton d’accès final.

```js theme={null}
exports.onExecuteCredentialsExchange = async (event, api) => {
  api.transaction.setTargetScopes(['read:users', 'write:users']);
};
```

**Paramètres**

<Expandable title="Paramètres" defaultOpen>
  <ParamField body="scopes" type="array of string">
    Le nouvel ensemble de portées cibles.
  </ParamField>
</Expandable>

<div id="apitransactioncleartargetscopes">
  ### `api.transaction.clearTargetScopes()`
</div>

\[Accès anticipé] Supprime toutes les portées de l’ensemble de portées cible.

```js theme={null}
exports.onExecuteCredentialsExchange = async (event, api) => {
  api.transaction.clearTargetScopes();
};
```
