メインコンテンツへスキップ
メール変更スクリプトは、ユーザーのメールアドレスやその検証ステータスが変わった際に、定義済みの関数を実行します。この関数の名前をchangeEmailにすることをお勧めします。 このスクリプトはレガシー認証シナリオ でのみ使用され、ユーザーのメールアドレス(もしくはメールアドレス検証ステータス)をAuth0と外部データベースで同時に更新したい場合には必須です。 メール変更スクリプトは、では構成できません。このスクリプトを管理するには、Auth0 接続の作成または接続の更新エンドポイント、またはAuth0 Deploy CLIを使用する必要があります。
Auth0 Dashboardを使ってカスタムデータベース接続のデータベースアクションスクリプトを管理している場合には、保存時にメール変更スクリプトが自動的に削除されます。メール変更スクリプトが誤って削除されていないことを確認するには、Auth0 Management APIまたはAuth0 Deploy CLIを使って接続を管理してください。カスタムデータベースでユーザーのメールを手動で変更する場合には、ユーザーに個別に適用しなければなりません。Auth0は変更を自動的には検知しません。

ChangeEmail関数

changeEmail関数は以下を行います。
  • 外部データベースでユーザーのメールアドレスを更新します。
  • 処理の失敗やエラーが発生した場合にはエラーを返します。

定義

changeEmail関数は、4つのパラメーターを受け取り、コールバック関数を返します。
changeEmail(email, newEmail, verified, callback): function
パラメータータイプ説明
email文字列ユーザーの現在のメールアドレス。
newEmail文字列外部データベースに設定するユーザーの新しいメールアドレスの値。
verifiedブール値新しいメールアドレスの確認状況。
callback関数エラーデータをパイプライン経由で渡すために使用。

これは疑似JavaScriptを使った例で、どのようにすればchangeEmail関数を実装できるかがわかります。
function (email, newEmail, verified, callback) {
  // Prepare the API call
  let options = {
    url: "https://example.com/api/users",
    action: "PATCH",
    body: {
      email: email,
      new_email: newEmail,
      email_verified: verified
    }
  };

  // Call the API
  send(options, err => {
    // Return `false` value in callback if operation failed
    if (err && err.id == "FAIL_CHANGE_EMAIL") {
      return callback(null, false);
    } else if (err) {
      // Return error in callback if unspecified error occurred
      return callback(new Error("My custom error message."));
    }

    // Return `true` value in callback if operation succeeded
    return callback(null, true);
  });
}

コールバック関数

callback関数は2つのパラメーターを受け取り、1つの関数を返します。

定義

callback(error, operationResult): function
パラメータータイプ必須説明
errorオブジェクト必須エラーデータを含む。
operationResultブール値任意メール変更操作の結果を示す。

成功の場合

メールアドレス変更操作が成功した場合、callback関数を返し、errorパラメーターにはnullを、operationResultパラメーターにはtrueを渡します。
return callback(null, true);

失敗の場合

メールアドレス変更操作が失敗した場合、callback関数を返し、errorパラメーターにはnullを、operationResultパラメーターにはfalseを渡します。
return callback(null, false);

エラーの場合

エラーが発生した場合は、callback関数を返し、errorパラメーターに関連するエラー情報を渡します。
return callback(new Error("My custom error message."));

もっと詳しく

I