メインコンテンツへスキップ
Change Email スクリプトは、ユーザーのメールアドレスまたはメールアドレスの確認ステータスが変更されたときに、定義された関数を実行します。この関数の名前は changeEmail にすることを推奨します。 このスクリプトは、レガシー認証シナリオでのみ使用されます。Auth0 と外部データベースの両方で、同じ操作内でユーザーのメールアドレス (および/またはメールアドレスの確認ステータス) を更新する場合に必要です。 Change Email スクリプトは、 では設定できません。このスクリプトを管理するには、Auth0 の Create a connection エンドポイントまたは Update a connection エンドポイント、あるいは Auth0 Deploy CLI を使用する必要があります。
Auth0 Dashboard からカスタムデータベース接続の Database Action Scripts を管理すると、保存時に Change Email スクリプトは自動的に削除されます。誤って Change Email スクリプトが削除されないよう、接続を管理する際は Auth0 Management API または Auth0 Deploy CLI を使用してください。カスタムデータベースでユーザーのメールアドレスを手動で変更した場合は、ユーザーを別途 patch する必要があります。Auth0 がその変更を自動的に検出することはありません。

ChangeEmail 関数

changeEmail 関数では、次の処理を行う必要があります。
  • 外部データベース内のユーザーのメールアドレスを更新する。
  • 処理に失敗した場合、またはエラーが発生した場合は、エラーを返す。

定義

changeEmail 関数は 4 つのパラメーターを受け取り、callback 関数を返します。
changeEmail(email, newEmail, verified, callback): function
パラメーター説明
emailStringユーザーの現在のメールアドレス。
newEmailString外部データベースでユーザーの新しいメールアドレスとして設定する値。
verifiedBoolean新しいメールアドレスの確認ステータス。
callbackFunctionエラーデータをパイプラインに渡すために使用します。

これは、changeEmail 関数の実装方法を示す擬似 JavaScript の例です。
function (email, newEmail, verified, callback) {
  // API呼び出しの準備
  let options = {
    url: "https://example.com/api/users",
    action: "PATCH",
    body: {
      email: email,
      new_email: newEmail,
      email_verified: verified
    }
  };

  // APIを呼び出す
  send(options, err => {
    // 操作が失敗した場合はコールバックで`false`を返す
    if (err && err.id == "FAIL_CHANGE_EMAIL") {
      return callback(null, false);
    } else if (err) {
      // 不特定のエラーが発生した場合はコールバックでエラーを返す
      return callback(new Error("My custom error message."));
    }

    // 操作が成功した場合はコールバックで`true`を返す
    return callback(null, true);
  });
}

コールバック関数

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

定義

callback(error, operationResult): function
パラメーター必須説明
errorObject必須エラーのデータが含まれます。
operationResultBoolean任意メールアドレス変更操作の結果を示します。

成功を返す

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

失敗を返す

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

エラーを返す

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

詳細情報