getUserにすることをお勧めします。
このスクリプトは、Auth0への自動移行に必須です。また、移行を有効にしていない場合は、接続に構成された操作によっては必須となります。Auth0では、ユーザープロファイルで返すuser_idを永続的かつ一貫したものにすることを強く推奨しています。つまり、同じユーザーについて、ユーザー取得スクリプトを実行するたびに同じuser_idを返す必要があります。詳しくは、一貫性のあるuser_idを返すをご覧ください。
[Auth0にユーザーをインポート]が有効になっている場合、ユーザーがサインアップを試みたときに、外部ユーザーストアにそのユーザーがすでに存在するかどうかを確認するために、ユーザー取得スクリプトが実行されます。
また、ユーザーが以下を試みたときにもユーザー取得スクリプトが実行されます。
[Auth0にユーザーをインポート]が無効になっている場合も、ユーザーがサインアップを試みたときに、外部ユーザーストアにそのユーザーがすでに存在するかどうかを確認するためにユーザー取得スクリプトが実行されます。外部ユーザーストアにユーザーがすでに存在する場合、作成スクリプトは実行されません。
また、ユーザーが以下を試みたときにもユーザー取得スクリプトが実行されます。
ユーザー取得関数
getUser関数は以下を行う必要があります。
- ユーザーの識別子を外部データベースのAPIに送信する。
- ユーザーが見つかったら、そのユーザーのプロファイルデータを返す。
- ユーザーが存在するかどうかを確認する際に問題が発生した場合は、エラーを返す。
定義
getUser関数は2つのパラメーターを受け取り、callback関数を返します。
以下は、
getUser 関数の実装方法を示す疑似JavaScriptの例です。
コールバック関数
callback関数は、パイプラインを介してユーザープロファイルデータまたはエラーデータを渡すのに使用されます。
定義
callback関数は最大2つのパラメーターを受け取り、関数を返します。
ユーザープロファイルを返す(ユーザーが見つかった場合)
ユーザーが見つかった場合には、null値をerror パラメーターに渡し、ユーザーのプロファイルデータを正規化された形式でprofileパラメーターに渡します。
user_metadata、app_metadata、mfa_factorsフィールドを含めることもできます。
一貫性のあるuser_idを返す
Auth0は、ユーザー取得スクリプトが返すuser_idを使用して、テナント全体でユーザーを識別します。特定のユーザーについて、この値は一貫している必要があります。つまり、そのユーザーに対してユーザー取得スクリプトを実行するたびに、同じuser_idを返す必要があります。user_idは、実行するたびに変化する値ではなく、元のレコードにある安定した永続的なプロパティ(データベースのプライマリーキーなど)から生成してください。
一貫性のない
user_idを返すと、重複したユーザーや孤立したユーザーが作成されたり、識別子が不変であることを前提としたフローが機能しなくなったりする可能性があります。user_idは、元のレコードにある変化しないプロパティから生成し、同じユーザーが常に同じ値に対応するようにしてください。
user_idやランダムなuser_idを生成しないでください。たとえば新たに生成したUUIDを返すと、同じユーザーに対してスクリプトを実行するたびに、異なる識別子が生成されてしまいます。
ユーザープロファイルを返さない(ユーザーが見つからなかった場合)
ユーザーが見つからなかった場合には、null値をerrorパラメーターに返し、profileパラメーターを省略します。
エラーを返す
エラーが発生した場合には、何が起きたかについての関連情報を含むエラーデータをerrorパラメーターに渡します。