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 関数は 4 つのパラメーターを受け取り、callback 関数を返します。
changeEmail(email, newEmail, verified, callback): function
| パラメーター | 型 | 説明 |
|---|
email | String | ユーザーの現在のメールアドレス。 |
newEmail | String | 外部データベースでユーザーの新しいメールアドレスとして設定する値。 |
verified | Boolean | 新しいメールアドレスの確認ステータス。 |
callback | Function | エラーデータをパイプラインに渡すために使用します。 |
これは、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
| パラメーター | 型 | 必須 | 説明 |
|---|
error | Object | 必須 | エラーのデータが含まれます。 |
operationResult | Boolean | 任意 | メールアドレス変更操作の結果を示します。 |
メールアドレスの変更処理が成功した場合は、callback 関数を返し、error パラメーターには null を、operationResult パラメーターには true を渡します。
return callback(null, true);
メールアドレスの変更操作が失敗した場合は、callback 関数を返し、error パラメーターに null、operationResult パラメーターに false を渡します。
return callback(null, false);
エラーが発生した場合は、関連するエラー情報を error パラメーターとして渡して callback 関数を呼び出します。
return callback(new Error("My custom error message."));