メインコンテンツへスキップ
Send Phone Message トリガーを使用すると、多要素認証 (MFA) の要素として SMS/音声を使用する際にコードを実行できます。メッセージの送信にカスタムプロバイダーを使用する場合は、このフローの send-phone-message トリガーを使用してカスタムプロバイダーを設定する必要があります。
Actions の Send Phone Message フローの図
このフローの Actions はブロッキング (同期) です。つまり、トリガーのプロセスの一部として実行され、Action が完了するまで Auth0 パイプラインの残りの処理は実行されません。

トリガー

Send Phone Message

send-phone-message トリガーは、登録プロセスとチャレンジプロセスの両方 (event.message_options.action) で実行されます。また、 の New experience を使用している場合は、voice メッセージタイプ (event.message_options.message_type === 'voice') でも実行されます。

参考資料

  • Event object: 送信するメッセージと、チャレンジまたは登録の対象となるユーザーに関するコンテキスト情報を提供します。
  • API object: フローの動作を変更するためのメソッドを提供します。

一般的な利用例

カスタム SMS プロバイダーを使用する

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

/**
 * SendPhoneMessage フローの実行中に呼び出されるハンドラー。
 *
 * @param {Event} event - ユーザーおよびログイン時のコンテキストに関する詳細情報。
 */
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();
};
この Action を正しく実行するには、Action に AWS_REGIONAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY という名前のシークレットが含まれており、aws-sdk NPM パッケージへの依存関係が設定されている必要があります。