- ユーザープロファイルにアプリケーション固有のデータを保存する。
- ユーザーに対して特定の操作が実行されたかどうかを記録する。
- 負荷の高い処理の結果をユーザープロファイルにキャッシュし、今後のログインで再利用できるようにする。
- に由来しない情報や、IDプロバイダーから提供される情報を上書きする情報を保存する。
メタデータの種類
| メタデータの種類 | フィールド名 | 説明 |
|---|---|---|
| ユーザー情報 | user_metadata | ユーザーの中核的な機能に影響しない、設定などのユーザー属性を保存します。このデータは、Management API を使用してフォームを作成した場合、ログイン済みのユーザーが編集できます。そのため、安全なデータ ストアとして使用するべきではありません。 |
| アクセス情報 | app_metadata | 権限、Auth0 のプラン、外部 ID など、ユーザーの機能へのアクセスに影響する可能性がある情報を保存します。このデータはユーザーが編集できません。また、このフィールドに保存できる内容には制限があります。 |
| アプリケーション情報 | Client オブジェクトの client_metadata、Rules の context.clientMetadata、およびログイン後の Actions の event.client.metadata | アプリケーション (OIDC OAuth2 の用語では client) に関する情報を保存します。たとえば、アプリケーションのホームページ URL などです (Auth0 がアプリケーション設定で設定しない任意の値) 。 |
メタデータの管理
fetchUserProfile スクリプトでは、metadata オブジェクトを使用してメタデータを作成および更新できます。
Actions を使用する
user_metadata のプロパティを にコピーする post-login Action を作成できます。続いて、Authentication API の Get User Info エンドポイントから、ユーザーの user_metadata を取得できます。
詳しくは、post-login Action Trigger でユーザーメタデータを管理するを参照してください。
Management API を使用する
user_metadata の表示、作成、更新、または 設定の削除を行えます。
| タスク | エンドポイント | スコープ |
|---|---|---|
| 表示 | GET /api/v2/users/{id} | read:current_user |
| 作成 | PATCH /api/v2/users/{id} | create:current_user_metadata |
| 更新 | PATCH /api/v2/users/{id} | update:current_user_metadata |
| 削除 | DELETE /api/v2/users/{id}/multifactor/{provider} | update:users |
Dashboard を使用する
Lock ライブラリを使用する
user_metadata. の定義、追加、読み取り、更新を行えます。user_metadata プロパティは、他のユーザープロファイルのプロパティと同じ方法で読み取ります。たとえば、次のコードスニペットは user_metadata.hobby に関連付けられた値を取得し、ページ上の要素に割り当てます。
additionalSignUpFields を使用すると、ユーザーのサインアップフォームにカスタムフィールドを追加できます。ユーザーがカスタムフィールドに値を入力すると、Auth0 はその値をそのユーザーの user_metadata に保存します。サインアップ時に user_metadata を追加する方法について詳しくは、Additional Signup Fields を参照してください。
カスタムデータベース接続とメタデータ
/dbconnections/signup エンドポイントを使用して、ユーザーの user_metadata を設定できます。カスタムサインアッププロセスでメタデータを扱う方法について詳しくは、Custom Signup を参照してください。
Authentication API の /dbconnections/signup エンドポイントを使用して user_metadata フィールドを設定する場合、使用できるのは最大 10 個の文字列フィールド、合計 500 文字までです。
カスタムメールとメタデータ
user_metadata.lang を使用し、その情報を使ってメールの言語をカスタマイズします。詳しくは、メールテンプレートをカスタマイズする を参照してください。
Lock で問題が発生している場合は、非推奨エラー を確認してください。Management API で問題が発生している場合は、API 呼び出しを確認する を確認してください。