プロフィールを更新
PATCH /fapi/v1/me · 環境のサインインホストから呼び出し
認証済みユーザーのプロフィール項目を変更します。ボディに含まれる項目は変更され、含まれない項目はそのまま残ります。空文字列または null を指定すると、その項目はクリアされます。user_metadata を指定すると、RFC 7396 のマージパッチとしてマージされます。フィールドのルールは管理 API と同じです。認証済みユーザーの __Host-idp_session Cookie が必要です。直近の再認証は不要です。別オリジンの自社アプリは、代わりにフロントAPIアクセストークン(DPoP 証明付きの Authorization: DPoP <token>。フロントAPIアクセストークン を参照)を送信できます。
フィールドのエラー(422 validation_failed、errors[] 内):invalid(形式または長さ。/locale では、その言語が環境で有効でない場合も含む)、too_large と too_many_keys(user_metadata が 16 KiB を超える、深さが 5 を超える、またはトップレベルのキーが 100 を超える)、identifier_type_disabled(環境でユーザー名が無効)、profile_field_disabled(環境でその項目が無効。クリアは引き続き可能)、profile_field_required(環境でその項目が必須のため、クリアできない)。
リクエスト
ヘッダー:
| ヘッダー | 必須 | 説明 |
|---|---|---|
Idp-Client |
はい | SDK の識別子。 |
Origin |
はい | 正確に https://<sign-in host> である必要があります。 |
If-Match |
いいえ | 任意。以前のレスポンスの ETag(または *)。プロフィールが同じバージョンのままの場合にのみ変更されます。 |
ボディ(application/json または application/merge-patch+json):
| フィールド | 型 | 説明 |
|---|---|---|
given_name |
string または null | 名。 |
family_name |
string または null | 姓。 |
name |
string または null | 氏名。 |
picture |
string または null | 画像の URL(https)。 |
locale |
string または null | 言語(BCP 47 タグ)。 |
zoneinfo |
string または null | タイムゾーン(IANA 名)。 |
username |
string または null | ユーザー名。 |
user_metadata |
object | user_metadata に適用されるマージパッチ(RFC 7396)。 |
{
"given_name": "Ada",
"zoneinfo": "",
"user_metadata": {
"theme": null
}
}
レスポンス
200 OK と、更新後のプロフィール(GET /fapi/v1/me と同じフィールド)および新しい ETag が返されます。
エラー
| ステータス | コード | 条件 |
|---|---|---|
| 400 | malformed_request |
ボディまたは If-Match ヘッダーの形式が不正です。 |
| 400 | unknown_field |
ここでは変更できないフィールド(例:email や app_metadata)がボディに含まれています。 |
| 401 | unauthenticated |
有効なセッション Cookie がありません。 |
| 403 | origin_not_allowed |
Origin がないか、不正です。 |
| 404 | not_found |
アカウントを読み取れません(例:ブロックされている、または削除処理中)。 |
| 409 | username_unavailable |
ユーザー名が予約されているか、別のアカウントで使用されています(どちらも同じ応答になります)。 |
| 412 | precondition_failed |
If-Match が現在のバージョンと一致しません。何も変更されていません。 |
| 413 | payload_too_large |
ボディが 16 KiB を超えています。 |
| 415 | unsupported_media_type |
サポートされていない Content-Type です。 |
| 422 | validation_failed |
フィールドがルールに違反しています。errors[] にフィールド名と理由が示されます(上記を参照)。 |
| 503 | service_unavailable |
ユーザーディレクトリが一時的に利用できません。Retry-After の秒数後に再試行してください。 |
例
curl -X PATCH https://example.keenauth.app/fapi/v1/me \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
-H "Origin: https://example.keenauth.app" \
-H 'If-Match: "7"' \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{"given_name":"Ada","zoneinfo":""}'
個人データ
このエンドポイントは個人データ(エンドユーザーのプロフィール)を扱います。KeenAuth API における個人データ では、保存される内容、保存期間、削除方法について説明しています。どのフィールドにも、特別な種類の個人データ(健康、生体情報、宗教、政治的意見、性的指向)を送信しないでください。