
# 애플리케이션의 토큰 취소

`POST /v1/applications/{application_id}/tokens:revoke` · 권한 `sessions:write`

애플리케이션에 발급된, 모든 사용자에 대한 활성 refresh token 패밀리를 모두 취소합니다. 이 호출 이전에 애플리케이션에 발급된 액세스 토큰은 introspection과 취소 확인에서 더 이상 수락되지 않습니다. 애플리케이션에 발급된 토큰이 유출되었을 수 있을 때 사용하세요. 애플리케이션은 새 인가 요청을 통해 새 토큰을 받아야 합니다.

세션, 사용자의 동의, 애플리케이션의 자격 증명은 변경되지 않습니다. 사용자의 로그인 세션은 열린 상태로 남으므로, 새 인가 요청은 다시 로그인하지 않고도 성공할 수 있으며 동의를 다시 묻지 않습니다. 유출된 클라이언트 시크릿으로 새 토큰이 발급되지 않도록 하려면 [애플리케이션 자격 증명](credentials/create.md)도 교체하세요. 요청에는 본문이 없습니다. 같은 호출을 반복하면 개수 0으로 성공합니다. 취소는 관리 감사 로그에 기록됩니다. 재시도를 안전하게 하려면 `Idempotency-Key` 헤더를 보내세요.

## 요청

| 매개변수 | 위치 | 필수 | 설명 |
|---|---|---|---|
| `application_id` | path | 예 | 애플리케이션 ID, `app_` 접두사가 붙습니다. |

## 응답

`200 OK`.

```json
{
  "revoked_token_families": 318
}
```

`revoked_token_families`는 이 호출로 취소된 refresh token 패밀리 수입니다.

## 오류

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

| HTTP | `code` | 언제 |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | 본문을 보냈으나 빈 JSON 객체가 아닙니다. |
| 404 | `not_found` | 애플리케이션이 이 환경에 없습니다. |
| 401 | `unauthenticated` | API 키가 없거나, 잘못되었거나, 취소되었습니다. |
| 403 | `insufficient_permissions` | 키에 `sessions:write` 권한이 없습니다. |
| 429 | `rate_limited` | 요청 한도를 초과했습니다. `Retry-After`를 준수하세요. |
| 503 | `service_unavailable` | 종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하세요. |

## 예제

```bash
curl -X POST https://api.eu.keenauth.com/v1/applications/app_0a1b2c3d4e5f6g7h8j9k0m1n2p/tokens:revoke \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)"
```

CLI: `keenauth applications tokens revoke app_0a1b2c3d4e5f6g7h8j9k0m1n2p --yes`
