Actualizar su perfil

PATCH /fapi/v1/me · llamado desde el host de inicio de sesión del entorno

Cambia los campos del perfil del usuario autenticado. Un campo presente en el cuerpo se modifica, un campo ausente se deja como está, y una cadena vacía o null borra el campo. user_metadata, si se indica, se fusiona como un parche de fusión RFC 7396. Se aplican las mismas reglas de campos que en la API de administración. Requiere la cookie __Host-idp_session del usuario autenticado; no es necesaria una reverificación reciente. Una aplicación de primera parte en otro origen puede enviar en su lugar su token de acceso de la API frontal (Authorization: DPoP <token> con una prueba DPoP; consulte Token de acceso de la API frontal).

Errores de campos (422 validation_failed, en errors[]): invalid (formato o longitud; /locale también cuando el idioma no está habilitado para el entorno), too_large y too_many_keys (user_metadata supera 16 KiB, profundidad 5 o 100 claves de nivel superior), identifier_type_disabled (los nombres de usuario están desactivados en el entorno), profile_field_disabled (el entorno desactivó el campo; aun así se permite borrarlo) y profile_field_required (el entorno exige el campo, por lo que no se puede borrar).

Solicitud

Encabezados:

Encabezado Obligatorio Descripción
Idp-Client sí Identificador del SDK.
Origin sí Debe ser exactamente https://<host de inicio de sesión>.
If-Match no Opcional. El ETag de una respuesta anterior (o *); el cambio solo se realiza si el perfil sigue en esa versión.

Cuerpo (application/json o application/merge-patch+json):

Campo Tipo Descripción
given_name cadena o null Nombre.
family_name cadena o null Apellidos.
name cadena o null Nombre completo.
picture cadena o null URL de la imagen (https).
locale cadena o null Idioma (etiqueta BCP 47).
zoneinfo cadena o null Zona horaria (nombre IANA).
username cadena o null Nombre de usuario.
user_metadata objeto Parche de fusión aplicado a user_metadata (RFC 7396).
{
  "given_name": "Ada",
  "zoneinfo": "",
  "user_metadata": {
    "theme": null
  }
}

Respuesta

200 OK con el perfil actualizado (los mismos campos que GET /fapi/v1/me) y un nuevo ETag.

Errores

Estado Código Cuándo
400 malformed_request El cuerpo o el encabezado If-Match tiene un formato incorrecto.
400 unknown_field El cuerpo contiene un campo que no se puede modificar aquí (por ejemplo, email o app_metadata).
401 unauthenticated No hay una cookie de sesión válida.
403 origin_not_allowed Origin falta o es incorrecto.
404 not_found No se puede leer la cuenta (por ejemplo, está bloqueada o en proceso de eliminación).
409 username_unavailable El nombre de usuario está reservado o ya lo usa otra cuenta (ambos casos reciben la misma respuesta).
412 precondition_failed If-Match no coincide con la versión actual; no se cambió nada.
413 payload_too_large El cuerpo supera 16 KiB.
415 unsupported_media_type Content-Type no compatible.
422 validation_failed Un campo incumple una regla; errors[] indica el campo y el motivo (véase arriba).
503 service_unavailable El directorio de usuarios no está disponible temporalmente; reintente después de Retry-After segundos.

Ejemplo

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

Datos personales

Este endpoint contiene datos personales: perfil del usuario final. Datos personales en las API de KeenAuth describe qué se almacena, cuánto tiempo se conserva y cómo se elimina. No envíe categorías especiales de datos personales (salud, datos biométricos, religión, opiniones políticas, orientación sexual) en ningún campo.