利用可能性はAuth0プランによって異なる
この機能が利用できるかどうかは、ご利用のAuth0プラン(または契約)によります。詳細については、「価格設定」をお読みください。
- 自動移行 :Auth0へのログイン時に、ユーザーがまだAuth0に存在していない場合、スクリプトはレガシーデータベースでユーザーの有無を確認します。ユーザーが見つかり、 Auth0にユーザーをインポート フラグがある場合には、ユーザーデータによってユーザーがAuth0データストアに移行されます。この機能は、 トリクルダウン移行 や レイジー移行 と呼ばれることがあります。
- レガシーデータベース :ユーザーのログイン試行、作成、パスワード変更、メール検証や削除では、Auth0は必ず基盤となるデータベースにクエリを行います。ユーザーが見つかって、 Auth0にユーザーをインポート フラグが ない 場合には、ユーザーデータはレガシーデータベースに留まり、Auth0には移行 されません 。
ネットワークのファイアウォール
ファイアウォールの内側にいる場合、この機能を正しく動作させるには、適切なAuth0のIPアドレスをAllow List(許可リスト)に追加する必要があるかもしれません。
スクリプトの実行
「カスタムデータベース接続」で説明されているように、カスタムデータベース接続タイプでは、アクションスクリプトを構成することができます。アクションスクリプトとは、レガシーIDストアとのやり取りに使用されるカスタムコードのことです。原則的に、各アクションスクリプトは名前が付けられたJavaScript関数で、多数のパラメータが渡されます。関数の名前と渡されるパラメーターは、スクリプトによって異なります。制限
アクションスクリプトの実行は、JavaScriptの非同期な性質に対応し、Promiseオブジェクトなどのコンストラクトを使用することができます。非同期処理を行うと、操作の完了が保留され、事実上一時停止となります。Auth0のサーバーレスWebtaskコンテナーには通常、20秒の実行制限が設けられており、それを超えると、コンテナーはリサイクルされます。この制限によってコンテナーがリサイクルされると、操作は途中で終了され、最終的にはエラー状態が返されます(global
オブジェクトもリセットされる可能性があります)。
完了とcallback関数
各アクションスクリプトに用意されたcallback
関数は、操作が完了したことを示す合図として機能します。アクションスクリプトは、callback
関数への呼び出し(暗示的あるいはJavaScript returnステートメントを明示的に実行)の直後に完了し、その他の操作は実行しません。
Auth0が提供する
callback
関数は 1回 だけ呼び出す必要があります。1つのアクションスクリプト内で関数を複数回呼び出すと、予期しない結果が得られたり、エラーが発生したりします。callback
が、callback()
のようにパラメーターを指定せずに実行された場合は、callback(null)
の実行時と同じように関数が呼び出されます。callback
関数への呼び出しは、非同期処理が完了する時点まで延期され、一番最後に呼び出される必要があります。非同期実行では、非同期操作が完了した後でJavaScript callback
が実行されます。このコールバックは通常、JavaScript関数のメイン(同期)のボディーが完了した後、ある時点で呼び出されます。
callback
関数の実行に失敗すると、その実行は停止し、最終的にはエラー状態が返されます。アクションスクリプトは、callback
関数を1回だけ呼び出す必要があります:callback
関数は、実行の停止を防ぐために少なくとも1回呼び出す必要がありますが、複数回呼び出すことはできません。複数回呼び出そうとすると、予期しない結果が得られたり、エラーが発生したりします。