Passer au contenu principal
Le déclencheur Post Change Password s’exécute après qu’un utilisateur réinitialise ou change son mot de passe. Vous pouvez utiliser ce déclencheur pour envoyer un courriel à l’utilisateur après un changement de mot de passe ou pour aviser un autre système que le mot de passe de l’utilisateur a changé, afin de révoquer d’autres sessions qui ne sont pas gérées par Auth0.
Schéma montrant le flux Post Change Password des Actions.
Les Actions de ce flux sont non bloquantes (asynchrones), ce qui signifie que le pipeline Auth0 continue de s’exécuter sans attendre que l’Action ait terminé. Par conséquent, le résultat de l’Action n’a aucune incidence sur la transaction Auth0.

Déclencheurs

Post Change Password

Le déclencheur post-change-password s’exécute après qu’un utilisateur d’une connexion de base de données a réinitialisé ou modifié son mot de passe. Plusieurs Actions peuvent être associées à ce déclencheur, et elles s’exécuteront dans l’ordre. Toutefois, ces Actions s’exécuteront de façon asynchrone et ne bloqueront pas le processus de réinitialisation du mot de passe.

Référence

  • Objet d’événement : Fournit des renseignements contextuels sur l’utilisateur et la connexion sur laquelle le mot de passe a été modifié.
  • Objet API : Fournit des méthodes pour modifier le comportement du flux.

Cas d’utilisation courants

Invalider la session de l’utilisateur dans un autre système

Une Action post-change-password peut servir à invalider la session de l’utilisateur dans un autre système :
const axios = require("axios");

/**
 * @param {Event} event - Détails sur l'utilisateur dont le mot de passe a été modifié.
 */
exports.onExecutePostChangePassword = async (event) => {
  axios.post("https://my-api.exampleco.com/revoke-session", { params: { email: event.user.email }});
};
Pour utiliser une bibliothèque npm comme axios, vous devez l’ajouter à l’Action comme dépendance. Pour en savoir plus, consultez la section “Ajouter une dépendance” de Write Your First Action.

Envoyer un courriel après que l’utilisateur a modifié son mot de passe

const axios = require("axios");

exports.onExecutePostChangePassword = async (event) => {
  try {
    // https://sendgrid.api-docs.io/v3.0/mail-send
    axios.post('https://api.sendgrid.com/v3/mail/send',
      {
        personalizations: [{
          to: [{ email: event.user.email }]
        }],
        from: { email: 'admin@exampleco.com' },
        subject: 'Your password was changed',
        content: [{
          type: 'text/plain',
          value: 'The password for your ' + event.connection.name + ' account ' + event.user.email + ' was recently changed.'
        }]
      },
      {
        headers: {
          'Authorization': 'Bearer ' + event.secrets.SENDGRID_API_KEY
        },
      }
    );
  } catch (err) {
    console.log(`Error sending email to ${event.user.email}:`, err.message)
  }
};