Skip to main content
Lock または Auth0 API を使用すると、メールアドレスとパスワードに加えて、追加のフィールドを含むようユーザーのサインアップフォームをカスタマイズできます。 Lock と Custom UI のどちらにするかを決める前に、考慮すべき点が数多くあります。たとえば、Lock を使用する場合は、別のページにリダイレクトしてデータを収集したり、プログレッシブプロファイリングを使用したりできます。Auth0 API を使用する場合は、カスタムフィールドを取得してデータベースに保存できます。どの方法が目的に最も適しているかを選ぶ際には、カスタマイズに関するいくつかの制約も考慮する必要があります。一般的なカスタマイズの例としては、username の追加やパスワード強度の検証があります。

Universal Login を推奨

Auth0 には、独自のカスタムログインページやサインアップページを設計したり、Auth0 ライブラリに埋め込まれたものを使用したりする代わりに利用できる Universal Login オプションがあります。サインアップとログインのオプションを提供したく、アプリケーション名、ロゴ、背景色だけをカスタマイズすればよい場合は、Universal Login のほうが簡単に実装できる可能性があります。

Lock を使用する

Lock はカスタムフィールド付きのサインアップをサポートしています。 Lock の additionalSignUpFields オプションは、データベース接続でのサインアップでのみ機能します。ソーシャル を使用するサインアップでは、Lock で同じ方法でこれらのフィールドを収集することはできません。ただし、追加のカスタムフィールドを引き続き収集しながら、Lock でソーシャル IdP サインアップを有効にする別の方法が 2 つあります。

別のページにリダイレクトする

Lock でソーシャルプロバイダーのサインアップを使用してカスタムフィールドを収集する方法の 1 つは、リダイレクトルール を使ってユーザーを別のページにリダイレクトし、そこで追加情報を入力してもらった後、認証トランザクションを完了するために元のフローへリダイレクトで戻すことです。

段階的プロファイリング

ソーシャルプロバイダーを使ってユーザー登録する際にカスタムフィールドのデータを収集するもう 1 つの方法として、段階的プロファイリング があります。これは、時間をかけて少しずつユーザープロファイルデータを充実させていく方法です。登録時には必要最小限の情報だけを収集し、その後ユーザーがアプリを利用する中で、都度少量のデータ (たとえば質問を 1 つ) を追加で収集していき、ユーザープロファイルを完成させます。これにより、必要な情報を収集しながらも、ユーザーの負担を抑えられます。ソーシャルIdPを使って登録する目的は、ユーザーにとって登録をより手間なくスムーズにすることだからです。

API を使用する

カスタムフィールドを収集するサインアップフォームを作成する

name はユーザープロフィールの属性で、color はカスタムフィールドです。 現在、サインアップ時にユーザーが入力したカスタムフィールドを検証する方法はありません。検証は、ログイン時に Auth0 の Rule で行うか、アプリケーション内のカスタムの サーバーサイド ロジックで行う必要があります。

フォームデータを送信する

Auth0 の /dbconnections/signup エンドポイントに POST リクエストを送信します。 送信する必要がある項目:
  • アプリケーションの client_id
  • サインアップするユーザーの emailpassword
  • ユーザーデータの保存先となるデータベース connection の名前
  • ユーザーに設定する任意のユーザープロフィール属性 (given_namefamily_namenamenicknamepicture など)
  • user_metadata の一部として送信する任意のカスタムフィールド

カスタムフィールドの制限事項

ユーザーがサインアップすると、カスタムフィールドは user_metadata の一部として送信されます。このフィールドには、次の制限があります。
  • user_metadata に含められるフィールド数は 10 個までです
  • user_metadata.field は文字列である必要があります
  • user_metadata.field.value.length は 500 文字未満である必要があります
  • user_metadata.field.length は 100 文字未満である必要があります
  • user_metadata の現在のサイズ上限は 16 MB です

リダイレクトモード

ログインに成功すると、Auth0 は設定済みのコールバックURL に、クエリ文字列内の (id_token) を付与してユーザーをリダイレクトします。 その後、サーバーで APIv2 を呼び出し、必要なカスタムフィールドをユーザープロファイルに追加する必要があります。

サインアップフォームに username を追加する

一般的なサインアップのカスタマイズとして、サインアップ時に username を追加できます。 この機能を有効にするには、編集する接続の Settings タブにある Dashboard の Connections > Database セクションで、Requires Username 設定をオンにします。 カスタムフォームで username フィールドを取得し、リクエストボディに username を追加します。

任意: パスワード強度を確認する

データベース接続のパスワードポリシーは、Dashboard で設定できます。詳細については、Auth0 データベース接続の Password Strength を参照してください。 カスタムサインアップフォームの実装で必要な場合は、設定されたパスワードポリシーを、ほかの接続情報とともに Management v2 API から取得できます。返される結果はクライアント側で解析でき、その接続に対して Dashboard で現在設定されているパスワードポリシー (1 つまたは複数) に関する情報が含まれます。