ユーザープロフィールの収集
ユーザーサインインに必要な認証 (Authentication) 識別子や認証情報以外にも、アプリケーションでパーソナライズされた製品体験を提供するために、Logto に保存された追加のユーザープロフィール情報を収集し、JWT クレームや API を通じて簡単に取得できるようにする場合があります。ユーザーデータは以下の方法で収集できます:
-
新規ユーザー登録時: ユーザープロフィールの収集 機能を利用し、サインアップ時に追加のユーザープロフィール情報を収集する「あなたについて教えてください」ステップを追加できます。新規ユーザーは、登録が完了と見なされる前にすべての必須項目を入力する必要があります。本ドキュメントではこの方法に焦点を当てています。
-
ユーザー登録後:組み込みの アカウントセンター のプロフィールページや Account API を利用して、ユーザーがプロフィール情報を閲覧・更新できるようにします。アカウントセンターはここで定義したプロフィール項目と同じものを表示するように設定できるため、サインアップ後もユーザーがプロフィールデータを編集し続けることができます。
主なメリット
ユーザープロフィールの収集 機能により、エンドユーザーの登録体験中に追加のユーザー情報を収集できます。登録フローが長くなりユーザーのコンバージョン率に影響する可能性があるため、製品に必要な最小限の情報のみを収集することを推奨します。
この機能でできること:
-
包括的なユーザーデータの取得: ユーザーデータ をビジネスやコンプライアンス目的で収集できます。 OIDC 標準ユーザープロパティ や カスタムデータ も含まれます。
-
柔軟な項目カスタマイズ:テキスト、数値、日付、チェックボックス、ドロップダウン(セレクト)、URL、正規表現バリデーションなど、さまざまな フィールドタイプ から選択し、要件に合わせて設定できます。
-
最適化されたユーザー体験:ラベル、説明、プレースホルダー、バリデーションルールで表示をカスタマイズ可能。ビジネス要件に応じて必須/任意項目を設定できます。
-
組み込みフィールド設定:よく使われるユーザープロパティ用の基本データフィールドをプラグアンドプレイで利用可能。複合フィールド(住所、氏名)を活用し、構造化データを効率的に一度に収集できます。
クイックスタート
-
Logto コンソール > サインイン & アカウント > ユーザープロフィールの収集
にアクセスします。 - 「プロフィール項目を追加」をクリックし、 組み込みフィールド を選択するか、 カスタムデータ (英数字キー)を定義して作成します。
- 項目詳細を開き、フィールドタイプ、ラベル、説明、必須フラグ、タイプ固有の設定(長さ、範囲、フォーマット、選択肢など)を設定します。「変更を保存」をクリックします。
- サインイン & アカウント > ユーザープロフィールの収集に戻り、ドラッグ&ドロップで項目の順序を変更できます。変更は自動的に適用されます。
- Logto ライブプレビュー やテストアプリでユーザー体験を確認します。 識別子(メール/電話番号/ユーザー名)、 ソーシャルサインイン、 エンタープライズシングルサインオン (SSO) いずれの方法で新規アカウントを作成しても、登録時に「あなたについて教えてください」ページが表示されます。
ユーザーデータの種類
ユーザーデータは各 ユーザープロフィール で確認できます。すべてのユーザーデータカテゴリの概要は ユーザーデータ構造 ドキュメントを参照してください。ユーザープロフィールの収集機能では、登録時に基本ユーザーデータとカスタムユーザーデータの両方を収集できます。
基本ユーザーデータフィールド
Logto が提供する基本ユーザーデータフィールドは、user または user.profile プロパティに直接保存されます。これらのフィールドはデフォルトの設定値と i18n 翻訳が付属しており、作成後すぐに利用できます。必要に応じてフィールドタイプやパラメータをカスタマイズすることも可能です。
| 項目名 | ユーザーデータキー | 説明 |
|---|---|---|
| Name | user.name | 表示用のフルネーム(例:「Jane Doe」など)。 |
| Fullname | user.profile.givenNameuser.profile.middleNameuser.profile.familyName | 法的な完全氏名。設定に応じて familyName, givenName, middleName を柔軟に組み合わせます。 |
| Nickname | user.profile.nickname | 法的氏名とは異なる、カジュアルまたは親しみやすい名前。 |
| Birthdate | user.profile.birthdate | 指定フォーマットでの生年月日(例:「MM-dd-yyyy」など)。 |
| Gender | user.profile.gender | ユーザーが自己申告する性別(例:「女性」「男性」「回答しない」など)。 |
| Profile | user.profile.profile | ユーザーの人間が読めるプロフィールページの URL(例:SNS プロフィールなど)。 |
| Website | user.profile.website | ユーザーの個人ウェブサイトやブログの URL。 |
| Address | user.profile.address.formatteduser.profile.address.streetAddressuser.profile.address.regionuser.profile.address.zoneinfouser.profile.address.postalCodeuser.profile.address.country | ユーザーの住所(例:「123 Main St, Anytown, USA 12345」など)。単一行(address.formatted)または複数行(ストリート、都市、州、郵便番号、国などの構成要素)から選択可能。 |
カスタムユーザーデータフィールド
カスタムユーザーデータフィールドは、基本フィールドでカバーされていない追加情報(例:好み、興味、会社規模、その他ビジネス固有属性など)を収集するためのユーザー定義フィールドです。
カスタムフィールド作成時は、ユーザーデータキーに英数字のみを使用してください(例:customData.companySize)。その後、 フィールドタイプ を設定し、追加プロパティをカスタマイズできます。
ユーザー作成後にカスタムユーザーデータを取得・更新する方法については、 ユーザーデータ構造 を参照してください。
フィールドタイプ
フィールドはシンプルさで大別できます:
- プリミティブ:テキスト、数値、日付、チェックボックス(ブール値)、ドロップダウン(単一選択)、URL、正規表現。
- 複合:氏名、住所。
共通プロパティ
| プロパティ | 対象 | 備考 |
|---|---|---|
| ラベル | すべて | ユーザーに表示される名称。値がある/フォーカス時は上部に浮かびます。必須項目です。 |
| プレースホルダー | チェックボックス以外 | ラベルが浮いているときに表示されるヒント(例文/書式ガイド)。 |
| 説明 | チェックボックス以外 | フィールド下部に表示される補足説明や追加コンテキスト。 |
| 必須 | チェックボックス以外 | 有効時は未入力で送信不可。無効時はラベルに「(任意)」タグが付きます。 |
タイプ固有の設定
| タイプ | 設定可能項目 | 備考 |
|---|---|---|
| テキスト | 最小/最大長さ | 入力テキストの最小・最大長さを制限します。 |
| 数値 | 最小/最大値 | 入力値の数値範囲を制限します。 |
| 日付 | 日付フォーマット | プリセット(MM/dd/yyyy, dd/MM/yyyy, yyyy-MM-dd)から選択。プレースホルダー変更でデフォルト挙動上書き。完全カスタマイズ可能な date-fns パターンも利用可。 |
| チェックボックス | デフォルト値 | チェック済み(True)/未チェック(False)。 |
| ドロップダウン | 選択肢リスト(1つ以上) | 1行ごとに 値:ラベル 形式。ラベル省略時は値が表示されます。 |
| URL | N/A | N/A |
| 正規表現 | 正規表現パターン | バリデーションパターン(先頭/末尾スラッシュ不要)。例:SSN 用 ^\d3-\d2-\d4$。 |
| 住所 | 構成要素 | 単一行または複数行。サブ項目:ストリート、都市、州、郵便番号、国。 |
| 氏名 | 構成要素 | サブ項目:名、ミドルネーム、姓。 |
バリデーション
バリデーションは登録の最終ステップでユーザー送信時に実行されます。以下のチェックが適用されます:
- 必須入力(チェックボックス以外)。
- 長さ制限(テキスト)。
- 数値範囲(数値)。
- パターン一致(正規表現、日付フォーマット、URL、選択肢)。
- URL 構造(基本的な構文チェック、到達性は検証しません)。
また、複合フィールド(address と fullname)のサブ項目にも同様のバリデーションが適用されます。
ローカライゼーション
Logto は firstName、lastName、gender、birthdate などの基本ユーザーデータフィールドに対してシステムレベルの翻訳を提供しています。これらのフィールドのラベルは Logto コンソールで設定可能です。
独自の翻訳を提供したい場合は、 Logto > サインイン & アカウント > コンテンツ で上書きできます。
カスタムフィールドは、ラベル・プレースホルダー・説明文をすべて自身で設定します。カスタムフィールドのローカライズは、 独自 UI の持ち込み を利用するか、 お問い合わせ からフィードバックをお寄せください。
Management API (主要エンドポイント)
| メソッド | エンドポイント | 目的 |
|---|---|---|
| GET | /api/custom-profile-fields | すべての項目を一覧表示。 |
| GET | /api/custom-profile-fields/:name | 項目名で単一項目の定義を取得。 |
| POST | /api/custom-profile-fields | 項目を作成。 |
| POST | /api/custom-profile-fields/batch | 一括作成(1リクエスト最大20件)。 |
| PUT | /api/custom-profile-fields/:name | 項目名と全データセットで更新。 |
| DELETE | /api/custom-profile-fields/:name | 項目を削除。 |
| POST | /api/custom-profile-fields/properties/sie-order | サインイン体験での項目順序を更新。 |
アカウントセンターでプロフィール項目を表示
ここで定義したカスタムプロフィール項目は、組み込みの アカウントセンター のプロフィールページにも表示でき、ユーザーは登録後にプロフィールデータを閲覧・更新できます。設定方法:
-
コンソール > サインイン & アカウント > アカウントセンター
に移動します。 - 関連する項目権限(組み込みフィールドは Profile、カスタムフィールドは Custom data)が
EditまたはReadOnlyになっていることを確認します。 - 組み込み UI の統合 カードで、プロフィール項目セレクターから表示したい項目を追加し、ドラッグで順序を変更します。
詳細は プロフィール項目の設定 を参照してください。
ベストプラクティス
- サインアップ時は必要最小限のデータのみ収集し、詳細情報は後からプロフィール完成時に取得しましょう。
- 構造化データ(住所、氏名)は複合フィールドを使い、一貫性とローカライズ性を高めましょう。
- 書式依存フィールド(正規表現、日付、数値範囲)には明確な例やプレースホルダーを提供しましょう。
よくある質問
プロフィール項目は既存ユーザーデータも収集しますか?
いいえ、新規ユーザー登録の最終ステップでのみ情報を収集します。
項目を削除した場合、ユーザーデータも削除されますか?
いいえ、既存のユーザーデータは削除されません。エンドユーザー体験のサインアップフォームから項目が削除されるだけです。
国を通常のテキストフィールドではなく制御されたリストで収集できますか?
はい、「国」コンポーネントを標準化された選択肢付きの「ドロップダウン(単一選択)」フィールドに切り替えられます。