> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-docs-event-stream-action-templates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Déclencheur machine à machine

> Découvrez le flux d’actions machine à machine et le déclencheur d’action d’échange d’identifiants, qui s’exécute dans le cadre du flux machine à machine.

Le déclencheur communication entre machines s’exécute lorsqu’un jeton d’accès est délivré par le biais du [Flux des identifiants client](/docs/fr-ca/get-started/authentication-and-authorization-flow/client-credentials-flow).

<Frame>
  <img src="https://mintcdn.com/docs-dev-docs-event-stream-action-templates/6a0bOHQ-5WYDVwHQ/docs/images/fr-ca/cdy7uua7fh8z/1JPl54LFWCUh5StuglZS2o/41f89372526574c3b8cdac4d5ba38072/Machine_to_Machine_Flow.png?fit=max&auto=format&n=6a0bOHQ-5WYDVwHQ&q=85&s=4ab4c4094b9443b1320ca723df718761" alt="Diagram showing the Actions Machine to Machine Flow and when the triggers inside of it run." width="851" height="215" data-path="docs/images/fr-ca/cdy7uua7fh8z/1JPl54LFWCUh5StuglZS2o/41f89372526574c3b8cdac4d5ba38072/Machine_to_Machine_Flow.png" />
</Frame>

Les actions de ce flux bloquent (synchrones), ce qui signifie qu’elles s’exécutent dans le cadre du processus d’un déclencheur et qu’elles empêcheront le reste du pipeline Auth0 de s’exécuter jusqu’à ce que l’action soit complétée.

## Déclencheurs

### M2M / Identifiants clients

Le déclencheur `credentials-exchange` est une fonction exécutée avant que le jeton d’accès ne soit renvoyé.

#### Références

* [Objet événement](/docs/fr-ca/customize/actions/explore-triggers/machine-to-machine-trigger/credentials-exchange-event-object) : cette section fournit des informations contextuelles sur la demande d’échange d’identifiants du client.
* [Objet API](/docs/fr-ca/customize/actions/explore-triggers/machine-to-machine-trigger/credentials-exchange-api-object) : fournit des méthodes permettant de modifier le comportement du flux.

## Cas d’utilisation courants

### Contrôle d’accès

Une action d’échange d’identifiants peut être utilisée pour refuser un jeton d’accès en fonction de la logique personnalisée.

```javascript lines theme={null}
/**
 * @param {Event} event - Details about client credentials grant request.
 * @param {CredentialsExchangeAPI} api - Interface whose methods can be used to change the behavior of client credentials grant.
 */
exports.onExecuteCredentialsExchange = async (event, api) => {
  if (event.request.geoip.continentCode === "NA") {
    api.access.deny('invalid_request', "Access from North America is not allowed.");
  }
};
```

### Ajouter des demandes personnalisées au jeton d’accès

Une action d’échange d’identifiants peut être utilisée pour ajouter des demandes personnalisées à un jeton d’accès.

```javascript lines theme={null}
/**
 * @param {Event} event - Details about client credentials grant request.
 * @param {CredentialsExchangeAPI} api - Interface whose methods can be used to change the behavior of client credentials grant.
 */
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 fortement l’utilisation d’une demande personnalisée à espace de noms sous la forme d’un URI. Pour en savoir plus sur les demandes personnalisées à espace de noms et sans espace de noms, consultez [Créer des demandes personnalisées](/docs/fr-ca/secure/tokens/json-web-tokens/create-custom-claims).
</Callout>
