プロフィールを更新

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 における個人データ では、保存される内容、保存期間、削除方法について説明しています。どのフィールドにも、特別な種類の個人データ(健康、生体情報、宗教、政治的意見、性的指向)を送信しないでください。