Saltar al contenido principal
El disparador Post Change Password se ejecuta después de que un usuario restablece o cambia su contraseña. Puedes usar este disparador para enviar un correo electrónico al usuario después de un cambio de contraseña o para notificar a otro sistema que la contraseña del usuario ha cambiado, de modo que se puedan revocar otras sesiones no administradas por Auth0.
Diagrama que muestra el flujo Post Change Password de Actions.
Las Actions de este flujo no bloquean la ejecución (son asíncronas), lo que significa que el pipeline de Auth0 seguirá ejecutándose sin esperar a que la Action termine de ejecutarse. Por lo tanto, el resultado de la Action no afecta a la transacción de Auth0.

Desencadenadores

Post Change Password

El disparador post-change-password se ejecuta después de que un usuario de una conexión de base de datos restablece o cambia su contraseña. Se pueden vincular varias Actions a este disparador, y las Actions se ejecutarán en orden. Sin embargo, estas Actions se ejecutan de forma asíncrona y no bloquean el proceso de restablecimiento de contraseña.

Referencia

  • Objeto Event: Proporciona información contextual sobre el usuario y la conexión en la que se cambió la contraseña.
  • Objeto API: Proporciona métodos para modificar el comportamiento del flujo.

Casos de uso habituales

Invalidar la sesión del usuario en otro sistema

Se puede usar una Action posterior al cambio de contraseña para invalidar la sesión del usuario en otro sistema:
const axios = require("axios");

/**
 * @param {Event} event - Detalles sobre el usuario cuya contraseña fue cambiada.
 */
exports.onExecutePostChangePassword = async (event) => {
  axios.post("https://my-api.exampleco.com/revoke-session", { params: { email: event.user.email }});
};
Para usar una biblioteca de npm como axios, debes añadirla a la Action como dependencia. Para obtener más información, consulta la sección “Agregar una dependencia” de Write Your First Action.

Enviar un correo electrónico después de que el usuario cambie su contraseña

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)
  }
};