メインコンテンツへスキップ
作成スクリプトは、ユーザーが作成されるときに定義された関数を実装します。この関数の名前はcreateにすることをお勧めします。 これは任意のスクリプトです。これが有効になっている場合は、ユーザーがユニバーサルログイン経由でサインアップするとき、またはユーザーがまたはAuth0 で作成されるときに、Auth0がこのスクリプトを実行し、対応するユーザーレコードを外部データベースに作成します。 ユーザーがAuth0で作成されるときは、Auth0が一連のスクリプトを呼び出します。
  1. ユーザー取得:ユーザーがまだAuth0や外部データベースに存在しないことを確認する。
  2. 作成:ユーザーを外部データベースに作成する。
  3. ログイン:ユーザーが正常に作成されたことを確認する。

作成関数

create関数は以下を行います。
  • ユーザーのプロファイルデータを外部データベースのAPIに送信する。
  • ユーザー作成の操作に失敗した場合には、エラーを返す。

定義

create関数は2つのパラメーターを受け取り、callback関数を返します。
パラメータータイプ説明
userオブジェクトユーザー作成プロセスから取得したユーザープロファイルデータが含まれます。
callback関数パイプラインを通してエラーデータを渡すために使用されます。

これは疑似JavaScriptを使った例で、どのようにすればcreate関数を実装できるかがわかります。言語固有の例については、「言語固有のスクリプトの例」をお読みください。

Encryption(暗号化)

パスワード資格情報を非暗号化形式でログ、保存、または送受信してはいけません。
bcryptのような暗号学的ハッシュの暗号化ライブラリを使ってパスワード値を暗号化し、潜在的なデータ漏洩を防ぎます。

コールバック関数

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

定義

パラメータータイプ必須説明
errorオブジェクト必須エラーデータを含む。

成功の場合

ユーザー作成操作が成功した場合、callback関数を返し、errorパラメーターにはnull値を渡します。

エラーの場合

エラーが発生した場合は、コールバック関数を返し、errorパラメーターに関連するエラー情報を渡します。

ValidationErrorタイプのオブジェクト

ValidationErrorのカスタムエラータイプのオブジェクトを使うと、テナントログで表示されるデータを渡すことができます。
コンストラクター
ValidationErrorコンストラクターは、最大2つのパラメーターを受け取ります。
パラメーター説明
errorCode(必須)文字列。エラーのタイプを指定します。
message(任意)文字列。エラーに関する情報を含む。

ユーザーがすでに存在するというエラーを返す

errorCodeパラメーターの値にuser_existsを指定してエラーを返すと、Auth0はfsのテナントログイベントを記録します。
テナントのログイベントのフィールド
Code(コード)fs
Event(イベント)Failed Signup
Description(説明)My custom error message.

ユーザーオブジェクトパラメーター

userオブジェクトパラメーターには、ユーザー作成プロセスから取得した事前定義された一連のプロパティが含まれます。
プロパティ説明
client_idユニバーサルログインを通してユーザーがサインアップした場合は、Auth0アプリケーションのクライアントIDです。Auth0 DashboardまたはManagement APIを通してユーザーが作成された場合は、APIキーです。
tenantAuth0テナント名です。
emailユーザーのメールアドレスです。
passwordテキスト形式で表記したユーザーのパスワードです。
usernameユーザーのユーザー名です。カスタムデータベース接続の[Requires Username(ユーザー名を要求する)]設定が有効の場合は、必須です。
connectionAuth0接続名です。
user_metadataオブジェクトが存在する場合は、ユーザーのAuth0プロファイルにあるuser_metadataオブジェクトのプロパティを含みます。
app_metadataオブジェクトが存在する場合は、ユーザーのAuth0プロファイルにあるapp_metadataオブジェクトのプロパティを含みます。

ユーザー名プロパティ

カスタムデータベース接続の[Requires Username(ユーザー名を要求する)]設定が有効になっている場合は、ログインおよびユーザー取得スクリプトがusernameプロパティをサポートする必要があるため、ユーザー名プロパティを外部データベースに保存しなければなりません。

ユーザーメタデータとアプリメタデータ

user_metadataapp_metadataのプロパティは、外部データベースに保存する必要はありません。これらの値は、内部で作成されるユーザープロファイルレコードの一部として自動保存されます。

カスタムサインアップフィールド

サインアップのプロセス中にカスタムフィールドを作成して使用する場合、これらはuserオブジェクトに含まれます。

言語固有のスクリプトの例

Auth0は、以下の言語や技術で使用できるサンプルスクリプトを提供しています。

JavaScript

ASP.NET Membership Provider(MVC3 - Universal Providers)

ASP.NET Membership Provider(MVC4 - Simple Membership)

MongoDB

MySQL

PostgreSQL

SQL Server

Windows Azure SQL Database

Basic認証での要求

トラブルシューティング

レガシーデータベースかAuth0のいずれかでユーザーを作成できない場合は、以下を行います。
  1. Auth0のActions リアルタイムログconsole.log()のステートメントを確認します。
  2. レガシーデータベースでユーザーを探し、適宜削除します。ユーザーの状態の一部がAuth0にある場合は、Management APIのユーザー削除エンドポイントまたは接続ユーザー削除エンドポイントを使用します。
  3. [Import Mode(インポートモード)] が無効になっていることを確認してから、作成スクリプトを構成します。

もっと詳しく