始める前に
- テナントで Custom Domain が設定されていることを確認します。
- すべてのサインアップおよびログイン プロンプトで Universal Login を使用していることを確認し、ログイン プロンプトでは Customize Login Page トグルが無効になっていることを確認します。
- Custom Page Template が設定されていることを確認します。
ユースケース
機密データまたは規制対象データの伝達や収集のために Signup and Login Prompt Customizations を使用する場合は、Okta との契約で許可されている範囲内に限定してください。
用語
loginlogin-idlogin-passwordlogin-passwordless-sms-otplogin-passwordless-email-codepasskey-enrollmentpasskey-enrollment-local
signupsignup-idsignup-passwordpasskey-enrollmentpasskey-enrollment-local
form-content-startform-content-endform-footer-startform-footer-end
secondary-actions-startsecondary-actions-end

Auth0 Dashboard を使用して Partials を管理する
- Auth0 Dashboard > Branding > Universal Login に移動し、Enhance screens with partials を選択します。
- partials エディターでカスタマイズする 画面 を選択します。
画面 では、次の レンダリングモード を使用できます。
- STANDARD:
screenはデフォルトの Universal Login UI でレンダリングされます。partials を使用して、コードスニペットや テンプレート変数 を挿入できます。 - ADVANCED:
screenは ACUL を使用してレンダリングされるため、partials は適用されません。 - ADVANCED (FILTERED):
screenは特定のアプリケーションと組織に ACUL を適用してレンダリングされます。partials は、ACUL フィルターの対象外であるscreensにのみ適用されます。
- エントリポイントを選択し、コードスニペットとテンプレート変数を挿入します。
- を選択して、選択したエントリポイントに コードスニペット を追加します。
- { } を選択して、選択したエントリポイントに テンプレート変数 を追加します。
- ACTIONS を選択して、Actions を追加し、partials のフィールドとコンテンツを使用してカスタムロジックを適用します。
- Save and Publish を選択して、画面 を更新します。
![[partials]](https://mintcdn.com/translations/S4csL9vq6QUX5-Rr/docs/images/universal-login/partials-editor.png?fit=max&auto=format&n=S4csL9vq6QUX5-Rr&q=85&s=fd1a78906e8f1071a6b346294bc5a528)
Partials をプログラムで管理する
GET /prompts/{prompts_name}/partials) を使用して Partials を管理できます。Partials を追加、更新、または削除する際は、すべてのプロンプトで screen を指定する必要があります。Partials は最大 10,000 文字です。
Partials は、ターミナルで auth0 ul customize を実行して、Auth0 CLI の Customize Interface を使用して管理することもできます。

フォーム入力のスタイル適用と検証
<input type="text"><input type="number"><input type="checkbox"><input type="password"><input type="email"><input type="tel"><input type="url"><select><textarea>
ulp-field クラスを持つ <div> で囲みます。同様に、組み込みのエラースタイルを使用するには、同じ <div> に ulp-error クラスを追加します。ulp-error-info 要素が存在する場合は、スタイル付きのエラーメッセージも表示されます。
partials エディターを使用すると、組み込みのコードスニペットを確認できます。
クライアント側の検証
<head> に含めることもできます。
フォーム要素にクライアント側の検証を追加するには、次のようにします。
<div class="ulp-error-info">要素のdata-ulp-validation-function属性で、検証関数を参照します。<div class="ulp-error-info">要素のdata-ulp-validation-event-listeners属性で、検証関数を実行する DOM イベントを指定します。なお、検証は送信時に自動的に実行されます。- WCAG に準拠するには、入力欄を対応するエラーメッセージにプログラムで関連付ける必要があります。たとえば、
aria-describedby="error-id"とaria-invalid="true"を使用して、スクリーンリーダーが検証エラーを読み上げられるようにします。
サインアップページでサードパーティの JavaScript を使用する場合は注意してください。機密性の高いセキュリティ関連情報がサインアップページを通過することが多いため、クロスサイトスクリプティングのリスクにさらされるおそれがあります。可能な限り、Auth0 は送信前にユーザーが提供したデータを検証することを推奨しています。
コンテンツのローカライズ
カスタムテキスト変数を作成または更新する
screen を指定する必要があります。カスタムテキスト変数は、var-<name> の命名規則に従います。Markdown リンクがサポートされており、ユーザーに表示される前に HTML の <a> 要素に変換されます。
以下は、英語とスペイン語で利用規約チェックボックスのラベルテキスト用の変数を追加する呼び出し例です。詳細については、 を参照してください。
Partial でカスタムテキスト変数を使用する
prompts.screen.text オブジェクトを使って参照します。前のセクションの var-tos の例に対応する参照は、prompt.screen.text.varTos です。以下に、以前に作成した変数を Signup ID プロンプトの Partial で使用する例を示します。Management API の var-tos 変数は、Partial では varTos として参照される点に注意してください。
収集したデータを検証して保存する
カスタムフォーム要素を使用する場合は、データを Actions で利用できるように、すべての input 名に
ulp- プレフィックスを含める必要があります。event.request.body 上のオブジェクトとして受け取ります。お客様は api.validation.error 関数を使用して、検証エラーを返すことができます。
データベース接続を使用する場合:
- サインアップ プロンプトのデータは、
pre-user-registrationトリガーで利用できます。トリガーから検証エラーが返されると、ユーザーは登録できません。 - ログイン プロンプトのデータは、
post-loginトリガーで利用できます。検証エラーはお客様のアプリケーションのエラーページに転送されます。
-
サインアップ プロンプトのデータは、次のカスタムデータベース Action スクリプトとともに
pre-user-registrationトリガーで利用できます: Create User と Login。 -
ログイン プロンプトのデータは、次のカスタムデータベース Action スクリプトとともに
post-loginトリガーで利用できます: Login と Change Password。
カスタムデータベース Action スクリプトを使用するには、カスタムデータベース接続で Context objects in database scripts を有効にしてください。詳細については、Enable context object を参照してください。
- サインアップ プロンプトと ログイン プロンプトの両方のデータは、
post-loginトリガーで利用できます。検証エラーはお客様のアプリケーションのエラーページに転送されます。
passkey プロンプトを使用する場合:
passkey-enrollmentプロンプトのデータは、pre-user-registrationトリガーで利用できます。トリガーから検証エラーが返されると、ユーザーは登録できません。passkey-enrollmentプロンプトとpasskey-enrollment-localプロンプトでは、Post Login トリガーでデータが収集されることはありません。passkey-enrollment-localプロンプトのデータにはアクセスできません。これは、このプロンプトが常にpost-loginトリガーの実行後に表示されるためです。
フォームで収集したデータは、保存または表示する前に必ずサニタイズしてください。
- 保存するデータは、必ず Liquid の
{{escape}}ヘルパー関数 を通してください - データを Email Template に表示する場合は、Liquid 構文を削除してください
- データを Web ページに表示する場合は、HTML エンティティをエスケープしてください
- データをデータベースに保存する場合は、パラメータ化クエリを使用してください
- データをクエリ文字列に渡す場合は、
{{encodeURI}}または{{encodeURIParam}}などを使用してエンコードしてください
ユーザーメタデータに保存する
api.user.setUserMetadata を使用してユーザーの user_metadata に保存したりできます。