Saltar al contenido principal
El disparador Send Phone Message te permite ejecutar código al usar SMS/voz como factor para la autenticación multifactor (MFA). Si usas un proveedor personalizado para enviar los mensajes, el disparador send-phone-message de este flujo es necesario para configurar tu proveedor personalizado.
Diagrama del flujo Send Phone Message de Actions.
Las Actions de este flujo son bloqueantes (sincrónicas), lo que significa que se ejecutan como parte del proceso de un disparador e impedirán que el resto del pipeline de Auth0 se ejecute hasta que la Action se complete.

Disparadores

Send Phone Message

El disparador send-phone-message se ejecutará durante el proceso de inscripción y el proceso de desafío (event.message_options.action). También se ejecutará para el tipo de mensaje voice cuando se use la nueva experiencia de (event.message_options.message_type === 'voice').

Referencias

  • Objeto de evento: Proporciona información contextual sobre el mensaje que se enviará y el usuario al que se le solicitará el desafío o la inscripción.
  • Objeto de API: Proporciona métodos para modificar el comportamiento del flujo.

Casos de uso habituales

Usar un proveedor de SMS personalizado

const AWS = require("aws-sdk");

/**
 * Controlador que se llamará durante la ejecución de un flujo SendPhoneMessage.
 *
 * @param {Event} event - Detalles sobre el usuario y el contexto en el que está iniciando sesión.
 */
exports.onExecuteSendPhoneMessage = async (event) => {
  const text = event.message_options.text;
  const recipient = event.message_options.recipient;

  const awsSNS = new AWS.SNS({
    apiVersion: "2010-03-31",
    region: event.secrets.AWS_REGION,
    credentials: new AWS.Credentials(event.secrets.AWS_ACCESS_KEY_ID, event.secrets.AWS_SECRET_ACCESS_KEY)
  });

  const params = { Message: text, PhoneNumber: recipient };

  return awsSNS
    .publish(params)
    .promise();
};
Para que esta Action se ejecute correctamente, debe contener secretos llamados AWS_REGION, AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY, y tener una dependencia del paquete de NPM aws-sdk.