Profil aktualisieren

PATCH /fapi/v1/me · aufgerufen vom Anmeldehost der Umgebung

Ändert die Profilfelder des authentifizierten Benutzers. Ein Feld, das im Body enthalten ist, wird geändert. Ein fehlendes Feld bleibt unverändert, und ein leerer String oder null löscht das Feld. user_metadata wird, sofern angegeben, als Merge-Patch nach RFC 7396 zusammengeführt. Es gelten dieselben Feldregeln wie in der Management-API. Erforderlich ist das Cookie __Host-idp_session des authentifizierten Benutzers; eine erneute Verifizierung ist nicht nötig. Eine First-Party-App auf einem anderen Origin kann stattdessen ihr Front-API-Zugriffstoken senden (Authorization: DPoP <token> mit einem DPoP-Proof; siehe Front-API-Zugriffstoken).

Feldfehler (422 validation_failed, in errors[]): invalid (Format oder Länge; /locale auch dann, wenn die Sprache für die Umgebung nicht aktiviert ist), too_large und too_many_keys (user_metadata über 16 KiB, Tiefe 5 oder 100 Schlüssel auf oberster Ebene), identifier_type_disabled (Benutzernamen sind in der Umgebung deaktiviert), profile_field_disabled (die Umgebung hat das Feld deaktiviert; das Leeren ist weiterhin erlaubt) und profile_field_required (die Umgebung verlangt das Feld, daher kann es nicht geleert werden).

Anfrage

Header:

Header Erforderlich Beschreibung
Idp-Client ja SDK-Kennung.
Origin ja Muss exakt https://<Anmeldehost> sein.
If-Match nein Optional. Der ETag einer früheren Antwort (oder *); die Änderung erfolgt nur, wenn das Profil noch in dieser Version vorliegt.

Body (application/json oder application/merge-patch+json):

Feld Typ Beschreibung
given_name string oder null Vorname.
family_name string oder null Nachname.
name string oder null Vollständiger Name.
picture string oder null URL des Profilbilds (https).
locale string oder null Sprache (BCP-47-Tag).
zoneinfo string oder null Zeitzone (IANA-Name).
username string oder null Benutzername.
user_metadata object Merge-Patch, der auf user_metadata angewendet wird (RFC 7396).
{
  "given_name": "Ada",
  "zoneinfo": "",
  "user_metadata": {
    "theme": null
  }
}

Antwort

200 OK mit dem aktualisierten Profil (dieselben Felder wie bei GET /fapi/v1/me) und einem neuen ETag.

Fehler

Status Code Wann
400 malformed_request Der Body oder der If-Match-Header ist fehlerhaft.
400 unknown_field Der Body enthält ein Feld, das hier nicht geändert werden kann (zum Beispiel email oder app_metadata).
401 unauthenticated Kein gültiges Sitzungs-Cookie.
403 origin_not_allowed Origin fehlt oder ist falsch.
404 not_found Das Konto kann nicht gelesen werden (zum Beispiel gesperrt oder in der Löschung).
409 username_unavailable Der Benutzername ist reserviert oder wird bereits von einem anderen Konto verwendet (beide Fälle führen zu derselben Antwort).
412 precondition_failed If-Match stimmt nicht mit der aktuellen Version überein; es wurde nichts geändert.
413 payload_too_large Der Body überschreitet 16 KiB.
415 unsupported_media_type Nicht unterstützter Content-Type.
422 validation_failed Ein Feld verletzt eine Regel; errors[] nennt das Feld und den Grund (siehe oben).
503 service_unavailable Das Benutzerverzeichnis ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach Retry-After Sekunden.

Beispiel

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":""}'

Personenbezogene Daten

Dieser Endpunkt verarbeitet personenbezogene Daten: das Endbenutzerprofil. Personenbezogene Daten in den KeenAuth-APIs beschreibt, was gespeichert wird, wie lange es aufbewahrt wird und wie es gelöscht wird. Senden Sie in keinem Feld besondere Kategorien personenbezogener Daten (Gesundheit, biometrische Daten, Religion, politische Meinungen, sexuelle Orientierung).