프로필 업데이트

PATCH /fapi/v1/me · 환경의 로그인 호스트에서 호출

인증된 사용자의 프로필 필드를 변경합니다. 본문에 있는 필드는 변경되고, 없는 필드는 그대로 유지됩니다. 빈 문자열이나 null을 보내면 해당 필드가 지워집니다. user_metadata를 지정하면 RFC 7396 병합 패치로 병합됩니다. 관리 API와 동일한 필드 규칙이 적용됩니다. 인증된 사용자의 __Host-idp_session 쿠키가 필요하며, 최근 재인증은 필요하지 않습니다. 다른 출처에 있는 자사 앱은 대신 프런트 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
  }
}

응답

업데이트된 프로필(GET /fapi/v1/me와 동일한 필드)과 새 ETag를 포함한 200 OK를 반환합니다.

오류

상태 코드 발생 조건
400 malformed_request 본문 또는 If-Match 헤더의 형식이 잘못되었습니다.
400 unknown_field 여기서 변경할 수 없는 필드가 본문에 있습니다(예: email 또는 app_metadata).
401 unauthenticated 유효한 세션 쿠키가 없습니다.
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의 개인정보에서 저장되는 항목, 보관 기간, 삭제 방식을 설명합니다. 어떤 필드에도 특수 범주의 개인정보(건강, 생체 정보, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.