Aktualisiere die Identitätseinstellungen

PATCH /v1/identity-settings · Berechtigung identity-settings:write

Aktualisiert die Benutzernamen-Einstellungen der Umgebung mit einem JSON-Merge-Patch (application/merge-patch+json, RFC 7396). If-Match ist erforderlich: fehlt er, folgt 428, bei veralteter Version 412. Wurden die Einstellungen nie geschrieben, ist die Version "0" und der erste Schreibvorgang legt die Zeile an. Ein Patch, der nichts ändert, schreibt nichts und behält die Version.

Anfrage

Feld Typ Erforderlich Beschreibung
If-Match header ja Das ETag der Einstellungen wie zuletzt gelesen ("0", wenn nie geschrieben). Fehlt: 428; veraltet: 412.
username_identifier string nein required, optional oder off. Darf nicht null sein.
username_min_length integer nein 3–64, nicht größer als username_max_length. Darf nicht null sein.
username_max_length integer nein 3–64, nicht kleiner als username_min_length. Darf nicht null sein.
reserved_usernames string[] | null nein Höchstens 1000 Namen; ersetzt die gesamte Liste (RFC 7396 führt Arrays nicht zusammen). null oder [] leert sie. Jeder Eintrag wird normalisiert, Duplikate entfallen und die Liste wird sortiert gespeichert.
verification_policy string nein before_sign_in (Standard) oder after_sign_in. after_sign_in stoppt die Bereinigung unbestätigter Konten. Darf nicht null sein.
unverified_account_ttl_days integer nein 1-30 (Standard 7): Tage, die eine unbestätigte Registrierung in einer before_sign_in-Umgebung aufbewahrt wird, bevor sie gelöscht wird. Darf nicht null sein.

Die Benutzernamen-Einstellungen gelten nur für spätere Schreibvorgänge; bestehende Benutzer werden durch sie nie geändert. Die Verifizierungseinstellungen wirken auch auf bestehende Registrierungen (siehe unten).

Durchsetzungsregeln

Bereinigung unbestätigter Konten

verification_policy und unverified_account_ttl_days steuern die automatische Bereinigung nie bestätigter Registrierungen. Die Bereinigung läuft nur, solange die E-Mail-Adresse (oder die Telefonnummer) eine erforderliche Kennung ist; für E-Mail ist das der Standard.

Antwort

200 OK mit den aktualisierten Einstellungen und dem neuen ETag.

{
  "username_identifier": "optional",
  "username_min_length": 3,
  "username_max_length": 32,
  "reserved_usernames": ["admin", "root", "support"],
  "verification_policy": "before_sign_in",
  "unverified_account_ttl_days": 7,
  "updated_at": "2026-10-05T09:30:00.123456Z"
}

Fehler

HTTP Code Wann
400 unknown_field Der Patch enthält ein unbekanntes oder schreibgeschütztes Feld oder ist kein JSON-Objekt (malformed_request).
412 precondition_failed If-Match stimmt nicht mit der aktuellen Version überein.
415 unsupported_media_type Der Content-Type ist nicht application/merge-patch+json.
422 validation_failed Ein Wert ist ungültig, min ist größer als max, oder ein Feld, das nicht null sein darf, wurde auf null gesetzt (code: invalid).
428 precondition_required Der If-Match-Header fehlt.
401 unauthenticated Die Anmeldedaten fehlen, sind ungültig oder wurden widerrufen.
403 insufficient_permissions Die Anmeldedaten haben nicht die erforderliche Berechtigung.
429 rate_limited Die Rate-Grenze wurde überschritten; Wiederhole nach dem Retry-After-Zeitraum.
503 service_unavailable Eine Abhängigkeit ist vorübergehend nicht verfügbar; Wiederhole nach dem Retry-After-Zeitraum.

Beispiel

curl -X PATCH https://api.eu.keenauth.com/v1/identity-settings \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "0"' \
  -d '{"username_identifier":"optional","username_max_length":32,"reserved_usernames":["admin","root","support"]}'