> ## 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écrit le script d’action de base de données personnalisée pour modifier le courriel d’un utilisateur.

# Modèle de script Change Email

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

Ce script est utilisé uniquement dans un [scénario d’authentification hérité](/fr-CA/docs/authenticate/database-connections/custom-db/overview-custom-db-connections) et il est requis si vous voulez mettre à jour l’adresse courriel d’un utilisateur (et/ou l’état de vérification de son adresse courriel) dans Auth0 et dans votre base de données externe dans le cadre d’une même opération.

Le script Change Email ne peut pas être configuré dans le <Tooltip tip="Auth0 Dashboard : principal produit d’Auth0 pour configurer vos services." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip>. Pour gérer ce script, vous devez utiliser les points de terminaison [Create a connection](https://auth0.com/docs/api/management/v2#!/Connections/post_connections) ou [Update a connection](https://auth0.com/docs/api/management/v2#!/Connections/patch_connections_by_id) de la <Tooltip tip="Management API : produit permettant aux clients d’effectuer des tâches administratives." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Management+API">Management API</Tooltip> d’Auth0, ou [Auth0 Deploy CLI](/fr-CA/docs/deploy-monitor/deploy-cli-tool).

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

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

  Si vous modifiez manuellement le courriel d’un utilisateur dans votre base de données personnalisée, vous devez aussi mettre à jour l’utilisateur séparément; Auth0 ne détectera pas automatiquement ce 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.
* Renvoyer 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 de courriel actuelle de l’utilisateur.                                                        |
| `newEmail` | String   | Valeur à définir comme nouvelle adresse de courriel de l’utilisateur dans la base de données externe. |
| `verified` | Boolean  | État de vérification de la nouvelle adresse de courriel.                                              |
| `callback` | Function | Utilisée pour transmettre les données d’erreur dans le pipeline.                                      |

<div id="example">
  ### Exemple
</div>

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 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` prend deux paramètres et renvoie une fonction.

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

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

| Paramètre         | Type    | Obligatoire | Description                                                   |
| ----------------- | ------- | ----------- | ------------------------------------------------------------- |
| `error`           | Object  | Obligatoire | Contient les informations sur l’erreur.                       |
| `operationResult` | Boolean | Facultatif  | Indique le résultat de l’opération de changement de courriel. |

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

Si l’opération de changement de courriel a réussi, renvoyez la fonction `callback` en lui passant une valeur `null` pour le paramètre `error` et une valeur `true` pour le paramètre `operationResult` :

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

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

Si l’opération de changement de courriel a échoué, appelez la fonction `callback` et transmettez la valeur `null` pour le paramètre `error` ainsi que la valeur `false` pour le paramètre `operationResult` :

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

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

Si une erreur s'est produite, renvoyez la fonction `callback` et transmettez les renseignements pertinents sur l'erreur dans le paramètre `error` :

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

<div id="learn-more">
  ## En savoir plus
</div>

* [Modèles de script de modification du mot de passe](/fr-CA/docs/authenticate/database-connections/custom-db/templates/change-password)
* [Modèles de script de création](/fr-CA/docs/authenticate/database-connections/custom-db/templates/create)
* [Modèles de script de suppression](/fr-CA/docs/authenticate/database-connections/custom-db/templates/delete)
* [Modèles de script de récupération de l’utilisateur](/fr-CA/docs/authenticate/database-connections/custom-db/templates/get-user)
* [Modèles de script de connexion](/fr-CA/docs/authenticate/database-connections/custom-db/templates/login)
* [Modèles de script de vérification](/fr-CA/docs/authenticate/database-connections/custom-db/templates/verify)
