Mettre à jour votre profil
PATCH /fapi/v1/me · appelé depuis l'hôte de connexion de l'environnement
Modifie les champs du profil de l'utilisateur authentifié. Un champ présent dans le corps est modifié, un champ absent reste inchangé, et une chaîne vide ou null vide le champ. user_metadata, s'il est fourni, est fusionné comme un correctif de fusion RFC 7396. Les mêmes règles de champs que pour l'API de gestion s'appliquent. Le cookie __Host-idp_session de l'utilisateur authentifié est requis ; aucune nouvelle vérification récente n'est nécessaire. Une application de première partie sur une autre origine peut à la place envoyer son jeton d'accès à l'API front (Authorization: DPoP <token> avec une preuve DPoP ; voir Jeton d'accès à l'API front).
Erreurs de champs (422 validation_failed, dans errors[]) : invalid (format ou longueur ; /locale également lorsque la langue n'est pas activée pour l'environnement), too_large et too_many_keys (user_metadata dépasse 16 KiB, une profondeur de 5 ou 100 clés de premier niveau), identifier_type_disabled (les noms d'utilisateur sont désactivés dans l'environnement), profile_field_disabled (l'environnement a désactivé le champ ; le vider reste autorisé) et profile_field_required (l'environnement exige le champ, il ne peut donc pas être vidé).
Requête
En-têtes :
| En-tête | Obligatoire | Description |
|---|---|---|
Idp-Client |
oui | Identifiant du SDK. |
Origin |
oui | Doit être exactement https://<hôte de connexion>. |
If-Match |
non | Facultatif. L'ETag d'une réponse précédente (ou *) ; la modification n'est effectuée que si le profil est toujours à cette version. |
Corps (application/json ou application/merge-patch+json) :
| Champ | Type | Description |
|---|---|---|
given_name |
chaîne ou null | Prénom. |
family_name |
chaîne ou null | Nom de famille. |
name |
chaîne ou null | Nom complet. |
picture |
chaîne ou null | URL de la photo (https). |
locale |
chaîne ou null | Langue (balise BCP 47). |
zoneinfo |
chaîne ou null | Fuseau horaire (nom IANA). |
username |
chaîne ou null | Nom d'utilisateur. |
user_metadata |
objet | Correctif de fusion appliqué à user_metadata (RFC 7396). |
{
"given_name": "Ada",
"zoneinfo": "",
"user_metadata": {
"theme": null
}
}
Réponse
200 OK avec le profil mis à jour (mêmes champs que GET /fapi/v1/me) et un nouvel ETag.
Erreurs
| Statut | Code | Quand |
|---|---|---|
| 400 | malformed_request |
Le corps ou l'en-tête If-Match est mal formé. |
| 400 | unknown_field |
Le corps contient un champ qui ne peut pas être modifié ici (par exemple email ou app_metadata). |
| 401 | unauthenticated |
Aucun cookie de session valide. |
| 403 | origin_not_allowed |
Origin est absent ou incorrect. |
| 404 | not_found |
Le compte ne peut pas être lu (par exemple bloqué ou en cours de suppression). |
| 409 | username_unavailable |
Le nom d'utilisateur est réservé ou déjà utilisé par un autre compte (les deux cas donnent la même réponse). |
| 412 | precondition_failed |
If-Match ne correspond pas à la version actuelle ; rien n'a été modifié. |
| 413 | payload_too_large |
Le corps dépasse 16 KiB. |
| 415 | unsupported_media_type |
Content-Type non pris en charge. |
| 422 | validation_failed |
Un champ ne respecte pas une règle ; errors[] indique le champ et la raison (voir ci-dessus). |
| 503 | service_unavailable |
L'annuaire des utilisateurs est temporairement indisponible ; réessayez après Retry-After secondes. |
Exemple
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":""}'
Données personnelles
Cet point de terminaison contient des données personnelles : le profil de l'utilisateur final. Données personnelles dans les API KeenAuth décrit ce qui est stocké, la durée de conservation et la manière dont elles sont supprimées. N'envoyez aucune donnée personnelle sensible (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans un champ quel qu'il soit.