> ## 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.

# Script d’action de base de données Change Email et modèle

> Le script Change Email s’exécute lorsque l’adresse courriel d’un utilisateur ou son statut de vérification change.

Le script Change Email implémente la fonction définie lorsque l’adresse courriel d’un utilisateur ou son statut de vérification change. Nous recommandons de nommer cette fonction `changeEmail`.

Ce script n’est utilisé que dans un [scénario d’authentification héritée](/docs/fr-ca/authenticate/database-connections/custom-db) et il est requis si vous souhaitez mettre à jour l’adresse courriel d’un utilisateur (et/ou son état de vérification) dans Auth0 et dans votre base de données externe au cours de la même opération.

Le script Change Email ne peut pas être configuré dans l’<Tooltip tip="Auth0 Dashboard : le principal produit d’Auth0 pour configurer vos services." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip>. Pour gérer ce script, vous devez utiliser le <Tooltip tip="Management API : un produit qui permet aux clients d’effectuer des tâches administratives." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Management+API">Management API</Tooltip> d’Auth0, le point de terminaison [Créer une connexion](https://auth0.com/docs/api/management/v2#!/Connections/post_connections) ou [Mettre à jour une connexion](https://auth0.com/docs/api/management/v2#!/Connections/patch_connections_by_id), ou encore [Auth0 Deploy CLI](/docs/fr-ca/deploy-monitor/deploy-cli-tool).

<Warning>
  Si vous gérez les Database Action Scripts d’une connexion de base de données personnalisée dans l’Auth0 Dashboard, le script Change Email sera automatiquement supprimé lors de l’enregistrement.

  Pour éviter que le script Change Email soit supprimé par inadvertance, utilisez l’Auth0 Management API ou Auth0 Deploy CLI pour gérer la connexion.

  Si vous modifiez manuellement l’adresse courriel d’un utilisateur dans votre base de données personnalisée, vous devez mettre à jour l’utilisateur séparément; Auth0 ne détectera pas automatiquement le changement.
</Warning>

<div id="changeemail-function">
  ## Fonction changeEmail
</div>

La fonction `changeEmail` doit :

* Mettre à jour l’adresse courriel de l’utilisateur dans la base de données externe.
* Retourner une erreur si l’opération a échoué ou si une erreur s’est produite.

<div id="definition">
  ### Définition
</div>

La fonction `changeEmail` accepte quatre paramètres et renvoie une fonction `callback` :

```js lines theme={null}
changeEmail(email, newEmail, verified, callback): function
```

| Paramètre  | Type     | Description                                                                                        |
| ---------- | -------- | -------------------------------------------------------------------------------------------------- |
| `email`    | String   | Adresse courriel actuelle de l’utilisateur.                                                        |
| `newEmail` | String   | Valeur à définir comme nouvelle adresse courriel de l’utilisateur dans la base de données externe. |
| `verified` | Boolean  | Statut de vérification de la nouvelle adresse courriel.                                            |
| `callback` | Function | Utilisé pour transmettre les données d’erreur dans le pipeline.                                    |

Voici un exemple en pseudo-JavaScript montrant comment vous pourriez implémenter la fonction `changeEmail` :

```javascript lines expandable theme={null}
function (email, newEmail, verified, callback) {
  // Préparer l'appel d'API
  let options = {
    url: "https://example.com/api/users",
    action: "PATCH",
    body: {
      email: email,
      new_email: newEmail,
      email_verified: verified
    }
  };

  // Appeler l'API
  send(options, err => {
    // Retourner la valeur `false` dans le callback si l'opération a échoué
    if (err && err.id == "FAIL_CHANGE_EMAIL") {
      return callback(null, false);
    } else if (err) {
      // Retourner une erreur dans le callback si une erreur non spécifiée s'est produite
      return callback(new Error("My custom error message."));
    }

    // Retourner la valeur `true` dans le callback si l'opération a réussi
    return callback(null, true);
  });
}
```

<div id="callback-function">
  ## Fonction callback
</div>

La fonction `callback` accepte deux paramètres et retourne une fonction.

<div id="definition">
  ### Définition
</div>

```js theme={null}
callback(error, operationResult): function
```

| Paramètre         | Type    | Requis     | Description                                                          |
| ----------------- | ------- | ---------- | -------------------------------------------------------------------- |
| `error`           | Objet   | Requis     | Contient les données de l’erreur.                                    |
| `operationResult` | Boolean | Facultatif | Indique le résultat de l’opération de changement d’adresse courriel. |

<div id="return-a-success">
  ### Retourner un succès
</div>

Si l’opération de changement d’adresse courriel a réussi, appelez la fonction `callback` en transmettant une valeur `null` comme paramètre `error` et une valeur `true` comme paramètre `operationResult` :

```js theme={null}
return callback(null, true);
```

<div id="return-a-failure">
  ### Retourner un échec
</div>

Si l’opération de changement d’adresse courriel a échoué, retournez la fonction `callback` en passant une valeur `null` comme paramètre `error` et une valeur `false` comme paramètre `operationResult` :

```js theme={null}
return callback(null, false);
```

<div id="return-an-error">
  ### Retourner une erreur
</div>

Si une erreur s'est produite, retournez-la à l'aide de la fonction `callback` et transmettez les renseignements pertinents dans le paramètre `error` :

```js theme={null}
return callback(new Error("My custom error message."));
```
