> ## 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 le flux Machine to Machine des Actions et le déclencheur d’Action credentials-exchange, qui s’exécute dans le cadre de ce flux.

# Déclencheurs Machine to Machine

Le déclencheur Machine to Machine s’exécute lorsqu’un <Tooltip tip="Jeton d’accès : justificatif d’autorisation, sous la forme d’une chaîne opaque ou d’un JWT, utilisé pour accéder à une API." cta="Consulter le glossaire" href="/fr-CA/docs/glossary?term=Access+Token">Jeton d’accès</Tooltip> est émis au moyen du [flux d’identifiants de l’application](/fr-CA/docs/get-started/authentication-and-authorization-flow/client-credentials-flow).

<Frame>
  <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1JPl54LFWCUh5StuglZS2o/41f89372526574c3b8cdac4d5ba38072/Machine_to_Machine_Flow.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=12356c2f5b637c5760d658116c2345bf" alt="Schéma montrant le flux Machine to Machine des Actions et à quel moment ses déclencheurs s’exécutent." width="851" height="215" data-path="docs/images/cdy7uua7fh8z/1JPl54LFWCUh5StuglZS2o/41f89372526574c3b8cdac4d5ba38072/Machine_to_Machine_Flow.png" />
</Frame>

Les Actions de ce flux sont bloquantes (synchrones), ce qui signifie qu’elles s’exécutent dans le cadre du processus d’un déclencheur et empêchent le reste du pipeline Auth0 de s’exécuter tant que l’Action n’est pas terminée.

<div id="triggers">
  ## Déclencheurs
</div>

<div id="m2m-client-credentials">
  ### M2M / Client Credentials
</div>

Le déclencheur `credentials-exchange` est une fonction exécutée avant le renvoi du jeton d’accès.

<div id="references">
  #### Références
</div>

* [Objet d’événement](/fr-CA/docs/customize/actions/explore-triggers/machine-to-machine-trigger/credentials-exchange-event-object) : Fournit des renseignements contextuels sur la demande d’échange des identifiants de l’application.
* [Objet API](/fr-CA/docs/customize/actions/explore-triggers/machine-to-machine-trigger/credentials-exchange-api-object) : Fournit des méthodes permettant de modifier le comportement du flux.

<div id="common-use-cases">
  ## Cas d’utilisation courants
</div>

<div id="access-control">
  ### Contrôle d’accès
</div>

Une Action d’échange d’identifiants peut servir à refuser l’émission d’un jeton d’accès selon une logique personnalisée.

```javascript lines theme={null}
/**
 * @param {Event} event - Détails sur la demande d'octroi de l’identifiant de l’application.
 * @param {CredentialsExchangeAPI} api - Interface dont les méthodes peuvent être utilisées pour modifier le comportement de l'octroi de l’identifiant de l’application.
 */
exports.onExecuteCredentialsExchange = async (event, api) => {
  if (event.request.geoip.continentCode === "NA") {
    api.access.deny('invalid_request', "Access from North America is not allowed.");
  }
};
```

<div id="add-custom-claims-to-the-access-token">
  ### Ajouter des revendications personnalisées au jeton d’accès
</div>

Une Action d’échange d’identifiants peut servir à ajouter des revendications personnalisées à un jeton d’accès.

```javascript lines theme={null}
/**
 * @param {Event} event - Détails sur la demande d'octroi des identifiants d'application.
 * @param {CredentialsExchangeAPI} api - Interface dont les méthodes peuvent être utilisées pour modifier le comportement de l'octroi des identifiants d'application.
 */
exports.onExecuteCredentialsExchange = async (event, api) => {
  api.accessToken.setCustomClaim("https://my-api.exampleco.com/request-ip", event.request.ip);  
};
```

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Nous recommandons vivement d’utiliser une revendication personnalisée avec espace de noms sous forme d’URI. Pour en savoir plus sur les revendications personnalisées avec et sans espace de noms, consultez [Créer des revendications personnalisées](/fr-CA/docs/secure/tokens/json-web-tokens/create-custom-claims).
</Callout>
