メインコンテンツへスキップ
ログインスクリプトは、ユーザーの認証が必要になるたびに実行される関数を実装します。この関数の名前はloginにすることをお勧めします。 このスクリプトは、レガシー認証と自動移行の両方で必要です。自動移行が接続に対して構成されている場合、移行プロセスはユーザーが初めて正常にログインするときにトリガーされます。

Login関数

login関数は以下を行います。
  • ユーザー資格情報を外部データベースのAPIに送信する。
  • 認証が成功したらユーザーのプロファイルデータを返す。
  • 認証に失敗したらエラーを返す。

定義

login関数は3つのパラメーターを受け取り、callback関数を返します。
パラメータータイプ説明
userNameOrEmail文字列ユーザーのユーザー名またはメール。
password文字列ユーザーのパスワード(プレーンテキスト形式)。
callback関数エラーやプロファイルデータをパイプラインを介して渡すために使用されます。

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

Encryption(暗号化)

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

コールバック関数

callback関数は、パイプラインを通してユーザープロファイルデータやエラーデータを渡すのに使用されます。

定義

callback関数は2つまでのパラメーターを受け取り、1つの関数を返します。
パラメーター種類必須説明
errorオブジェクト必須エラーデータを含む。
profileオブジェクト任意ユーザーのプロファイルデータを含む。

ユーザープロファイルを返す

Loginスクリプトによって返されるユーザーのプロファイルデータは、Get Userスクリプトによって返されるプロファイルデータと一致していなければなりません。
ユーザーが認証に成功した場合、プロファイルデータは正規化フォームprofileオブジェクトに返される必要があります。標準フィールドのほかにも、user_metadataapp_metadata、およびmfa_factorsフィールドを含めることができます。

エラーの場合

エラーが発生した場合には、何が起きたかについての関連情報がerrorパラメーターに含まれるようにします。

WrongUsernameOrPasswordErrorタイプのオブジェクト

WrongUsernameOrPasswordErrorのカスタムエラータイプのオブジェクトを使うと、テナントログで表示されるデータを渡すことができます。
コンストラクター
WrongUsernameOrPasswordErrorコンストラクターは、最大2つのパラメーターを受け取ります。
パラメータータイプ必須説明
userNameOrEmail文字列必須ユーザーのユーザー名またはメール、もしくはnull値が含まれます。
message文字列任意エラーに関する情報が含まれます。

ユーザー名またはメールでエラーを返す

userNameOrEmailフィールドの値でエラーを返すと、Auth0はfpのテナントログイベントを記録します。
テナントログイベントフィールド
Code(コード)fp
Event(イベント)ログイン失敗(パスワードの間違い)
Description(説明)My custom error message

ユーザー名またはメールなしでエラーを返す

userNameOrEmailフィールドのnull値でエラーを返すと、Auth0はfuのテナントログイベントを記録します。
テナントログイベントのフィールド
Code(コード)fu
Event(イベント)失敗したログイン(無効なメールアドレス/ユーザー名)
Description(説明)My custom error message

[Sync user profile attributes at each login(ログインの度にユーザープロファイル属性を同期する)]

Auth0でログインのたびに外部データベースから返された値でnamenicknamegiven_namefamily_name、およびpictureフィールドを更新したい場合は、 [Sync user profile attributes at each login(ログインのたびにユーザープロファイル属性を同期する)] 設定を有効にします。 この設定を有効にしないと、ログインのたびに外部データベースから返された値は、外部データベースで変更したとしても、以降のログインでも保持されます。

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

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

Axios

Stormpath

もっと詳しく