Aggiorna il tuo profilo
PATCH /fapi/v1/me · chiamato dall'host di accesso dell'ambiente
Modifica i campi del profilo dell'utente autenticato. Un campo presente nel corpo viene modificato, un campo assente resta invariato, e una stringa vuota o null cancella il campo. user_metadata, se fornito, viene unito come RFC 7396 merge patch. Si applicano le stesse regole sui campi dell'API di gestione. Richiede il cookie __Host-idp_session dell'utente autenticato; non è necessaria una verifica recente. Un'app first-party su un'altra origine può invece inviare il proprio access token dell'API front (Authorization: DPoP <token> con una prova DPoP; vedi Access token dell'API front).
Errori sui campi (422 validation_failed, in errors[]): invalid (formato o lunghezza; /locale anche quando la lingua non è abilitata per l'ambiente), too_large e too_many_keys (user_metadata oltre 16 KiB, profondità 5 o 100 chiavi di primo livello), identifier_type_disabled (i nomi utente sono disattivati nell'ambiente), profile_field_disabled (l'ambiente ha disattivato il campo; cancellarlo resta consentito) e profile_field_required (l'ambiente richiede il campo, quindi non può essere cancellato).
Richiesta
Header:
| Header | Obbligatorio | Descrizione |
|---|---|---|
Idp-Client |
sì | Identificativo dell'SDK. |
Origin |
sì | Deve essere esattamente https://<sign-in host>. |
If-Match |
no | Facoltativo. Il ETag di una risposta precedente (o *); la modifica viene eseguita solo se il profilo è ancora a quella versione. |
Corpo (application/json o application/merge-patch+json):
| Campo | Tipo | Descrizione |
|---|---|---|
given_name |
stringa o null | Nome. |
family_name |
stringa o null | Cognome. |
name |
stringa o null | Nome completo. |
picture |
stringa o null | URL dell'immagine (https). |
locale |
stringa o null | Lingua (tag BCP 47). |
zoneinfo |
stringa o null | Fuso orario (nome IANA). |
username |
stringa o null | Nome utente. |
user_metadata |
oggetto | Merge patch applicata a user_metadata (RFC 7396). |
{
"given_name": "Ada",
"zoneinfo": "",
"user_metadata": {
"theme": null
}
}
Risposta
200 OK con il profilo aggiornato (stessi campi di GET /fapi/v1/me) e un nuovo ETag.
Errori
| Stato | Codice | Quando |
|---|---|---|
| 400 | malformed_request |
Il corpo o l'header If-Match è malformato. |
| 400 | unknown_field |
Il corpo contiene un campo che non può essere modificato qui (ad esempio email o app_metadata). |
| 401 | unauthenticated |
Cookie di sessione assente o non valido. |
| 403 | origin_not_allowed |
Origin manca o è errato. |
| 404 | not_found |
L'account non può essere letto (ad esempio bloccato o in cancellazione). |
| 409 | username_unavailable |
Il nome utente è riservato o già usato da un altro account (entrambi ricevono la stessa risposta). |
| 412 | precondition_failed |
If-Match non corrisponde alla versione attuale; non è cambiato nulla. |
| 413 | payload_too_large |
Il corpo supera 16 KiB. |
| 415 | unsupported_media_type |
Content-Type non supportato. |
| 422 | validation_failed |
Un campo viola una regola; errors[] indica il campo e il motivo (vedi sopra). |
| 503 | service_unavailable |
La directory utenti è temporaneamente non disponibile; riprova dopo i secondi indicati in Retry-After. |
Esempio
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":""}'
Dati personali
Questo endpoint tratta dati personali: profilo dell'utente finale. Dati personali nelle API di KeenAuth descrive cosa viene memorizzato, per quanto tempo viene conservato e come viene cancellato. Non inviare categorie particolari di dati personali (salute, dati biometrici, religione, opinioni politiche, orientamento sessuale) in nessun campo.