次のユーザープロファイル詳細を持つユーザーを作成するには、次のようにします。
{
"email": "jane.doe@example.com",
"user_metadata": {
"hobby": "surfing"
},
"app_metadata": {
"plan": "full"
}
}
次のPOST呼び出しをの/post_usersエンドポイントに対して実行し、ユーザーを作成して各プロパティの値を設定します。
ユーザーのメタデータは、Management API の /patch_users_by_id エンドポイントに PATCH リクエストを送信して更新できます。
たとえば、次のメタデータ値を持つユーザーを作成したとします。
{
"email": "jane.doe@example.com",
"user_metadata": {
"hobby": "surfing"
},
"app_metadata": {
"plan": "full"
}
}
user_metadata を更新し、ユーザーの自宅住所を 2 階層目のプロパティとして追加するには、
{
"addresses": {
"home": "123 Main Street, Anytown, ST 12345"
}
}
次の PATCH リクエストを送信します。
これで、ユーザーのユーザープロファイルは次のようになります。
{
"email": "jane.doe@example.com",
"user_metadata": {
"hobby": "surfing",
"addresses": {
"home": "123 Main Street, Anytown, ST 12345"
}
},
"app_metadata": {
"plan": "full"
}
}
プロパティの値を null に設定した PATCH 呼び出し (例: {user_metadata: {color: null}}) を送信すると、Auth0 はそのプロパティと値をデータベースから削除します。また、空のオブジェクトでメタデータ自体にパッチを適用すると、メタデータ全体が削除されます。
オブジェクトにマージされるのは、ルートレベルのプロパティのみです。下位レベルのプロパティはすべて置き換えられます。
たとえば、ユーザーの勤務先住所を追加のネストされたプロパティとして追加するには、addresses プロパティの内容全体を含める必要があります。addresses オブジェクトはルートレベルのプロパティであるため、ユーザーを表す最終的な JSON オブジェクトにはマージされますが、そのサブプロパティはマージされません。
{
"user_metadata": {
"addresses": {
"home": "123 Main Street, Anytown, ST 12345",
"work": "100 Industrial Way, Anytown, ST 12345"
}
}
}
したがって、対応する API への PATCH 呼び出しは次のようになります。
user_metadata は削除できます。
空のオブジェクトでメタデータにパッチを適用すると、メタデータは完全に削除されます。たとえば、このリクエストボディを送信すると、app_metadata 内のすべてが削除されます。
POST /api/v2/ applications エンドポイントを使用して新しいアプリケーションを作成する際に、clientMetadata オブジェクトを含めることができます。
クライアントメタデータは、GET /api/v2/clients エンドポイントおよび GET /api/v2/client/{id} エンドポイントのレスポンスに含まれます。
クライアントメタデータは、PATCH /api/v2/clients/{id} エンドポイントを使用して更新できます。このとき、clientMetadata property を含む application オブジェクトを指定します。このプロパティの値には、変更するメタデータを含むオブジェクトを設定します。
変更前のアプリケーション:
{
...
"name": "myclient",
"client_metadata": {
"mycolor": "red",
"myflavor": "grape"
}
...
}
リクエスト: PATCH /api/v2/client/myclientid123、ボディ:
{ "client_metadata": { "mycolor": "blue" } }
変更後のアプリケーション:
{
"name": "myclient",
"client_metadata": {
"mycolor": "blue",
"myflavor": "grape"
}
...
}
クライアントメタデータキーは、上記の「app_metadata を更新する」で説明したとおり、PATCH を実行し、キーの値に null を指定することで削除できます。この動作は、PATCH /api/v2/users/ エンドポイントにおける user_metadata および app_metadata プロパティの動作と同じです。