사용자의 세션 취소

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

사용자의 세션과 그 세션에 묶인 refresh token 패밀리를 취소합니다. 이 세션들이 발급한 액세스 토큰은 introspection과 취소 확인에서 더 이상 수락되지 않습니다. 본문이 없거나 {}이면 사용자의 모든 세션이 취소됩니다. 필터는 최대 하나만 지정할 수 있습니다:

이미 취소되었거나 만료된 세션은 집계되지 않으므로, 같은 호출을 반복해도 개수 0으로 성공합니다. 모든 취소는 관리 감사 로그에 기록됩니다. 재시도를 안전하게 하려면 Idempotency-Key 헤더를 보내세요.

요청

매개변수 위치 필수 설명
user_id path 예 사용자 ID, usr_ 접두사가 붙습니다.

선택 사항인 본문(필드는 최대 하나):

필드 유형 필수 설명
session_id 문자열 아니요 세션 ID, ses_ 접두사가 붙습니다.
org_id 문자열 아니요 조직 ID, org_ 접두사가 붙습니다.
client_id 문자열 아니요 애플리케이션 ID, app_ 접두사가 붙습니다.

응답

200 OK.

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

client_id를 사용하면 revoked_sessions는 0입니다(세션은 열린 상태로 유지됩니다).

오류

모든 오류는 안정적인 code를 포함한 application/problem+json 본문으로 반환됩니다.

HTTP code 언제
400 malformed_request, unknown_field 본문이 올바른 JSON이 아니거나 알 수 없는 필드가 있습니다.
415 unsupported_media_type Content-Type: application/json 없이 본문을 보냈습니다.
422 validation_failed 필터가 둘 이상입니다(mutually_exclusive). 또는 ID 형식이 잘못되었습니다(invalid_value). 또는 조직이나 애플리케이션이 이 환경에 없습니다(/org_id 또는 /client_id의 not_found).
404 not_found 사용자가 이 환경에 없거나, session_id가 이 사용자의 세션이 아닙니다.
401 unauthenticated API 키가 없거나, 잘못되었거나, 취소되었습니다.
403 insufficient_permissions 키에 sessions:write 권한이 없습니다.
429 rate_limited 요청 한도를 초과했습니다. Retry-After를 준수하세요.
503 service_unavailable 종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하세요.

예제

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