Revocar las sesiones de un usuario

POST /v1/users/{user_id}/sessions:revoke · permiso sessions:write

Revoca las sesiones del usuario y las familias de refresh tokens vinculadas a ellas; los access tokens que emitieron dejan de aceptarse en la introspección y en la comprobación de revocación. Sin cuerpo (o con {}) se revocan todas las sesiones del usuario. Puede indicarse como máximo un filtro:

Las sesiones que ya están revocadas o expiradas no se cuentan, así que una llamada repetida tiene éxito con recuentos en cero. Cada revocación se registra en el registro de auditoría de gestión. Envíe una cabecera Idempotency-Key para que los reintentos sean seguros.

Solicitud

Parámetro En Obligatorio Descripción
user_id path sí Id de usuario, con el prefijo usr_.

Cuerpo opcional (como máximo un campo):

Campo Tipo Obligatorio Descripción
session_id string no Id de sesión, con el prefijo ses_.
org_id string no Id de organización, con el prefijo org_.
client_id string no Id de aplicación, con el prefijo app_.

Respuesta

200 OK.

{
  "revoked_sessions": 2,
  "revoked_token_families": 3
}

revoked_sessions es 0 con client_id (las sesiones permanecen abiertas).

Errores

Cada error es un cuerpo application/problem+json con un code estable.

HTTP code Cuándo
400 malformed_request, unknown_field El cuerpo no es JSON válido o tiene un campo desconocido.
415 unsupported_media_type Se envió un cuerpo sin Content-Type: application/json.
422 validation_failed Más de un filtro (mutually_exclusive), un id mal formado (invalid_value), o la organización o la aplicación no existe en este entorno (not_found en /org_id o /client_id).
404 not_found El usuario no existe en este entorno, o session_id no es una de las sesiones del usuario.
401 unauthenticated Falta la clave de API, no es válida o está revocada.
403 insufficient_permissions La clave no tiene el permiso sessions:write.
429 rate_limited Se superó el límite de frecuencia; respete Retry-After.
503 service_unavailable Una dependencia no está disponible temporalmente; reintente más tarde.

Ejemplo

curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/sessions:revoke \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"org_id": "org_0a1b2c3d4e5f6g7h8j9k0m1n2p"}'

CLI: keenauth users sessions revoke usr_0a1b2c3d4e5f6g7h8j9k0m1n2p --org-id org_0a1b2c3d4e5f6g7h8j9k0m1n2p --yes