
# Révoquer les jetons d'une application

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

Révoque toutes les familles de jetons d'actualisation actives émises à l'application, pour l'ensemble des utilisateurs. Les jetons d'accès émis à l'application avant l'appel cessent d'être acceptés par l'introspection et par la vérification de révocation. Utilisez-le lorsque les jetons émis à l'application ont pu fuir : l'application doit alors obtenir de nouveaux jetons par une nouvelle demande d'autorisation.

Les sessions, les consentements des utilisateurs et les identifiants de l'application ne sont pas modifiés : les sessions de connexion des utilisateurs restent ouvertes, de sorte qu'une nouvelle demande d'autorisation peut réussir sans nouvelle connexion, et le consentement n'est pas demandé de nouveau. Pour empêcher un secret client divulgué de générer de nouveaux jetons, faites aussi tourner les [identifiants de l'application](credentials/create.md). La demande n'a pas de corps. Un appel répété réussit avec un compteur à zéro. La révocation est écrite dans le journal d'audit de gestion. Envoyez un en-tête `Idempotency-Key` pour rendre les nouvelles tentatives sûres.

## Demande

| Paramètre | Dans | Obligatoire | Description |
|---|---|---|---|
| `application_id` | chemin | oui | Identifiant d'application, préfixé `app_`. |

## Réponse

`200 OK`.

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

`revoked_token_families` est le nombre de familles de jetons d'actualisation révoquées par cet appel.

## Erreurs

Chaque erreur est un corps `application/problem+json` accompagné d'un `code` stable.

| HTTP | `code` | Quand |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | Un corps a été envoyé et ce n'est pas un objet JSON vide. |
| 404 | `not_found` | L'application n'existe pas dans cet environnement. |
| 401 | `unauthenticated` | La clé d'API est absente, invalide ou révoquée. |
| 403 | `insufficient_permissions` | La clé ne dispose pas de l'autorisation `sessions:write`. |
| 429 | `rate_limited` | La limite de débit a été dépassée ; respectez l'en-tête `Retry-After`. |
| 503 | `service_unavailable` | Une dépendance est temporairement indisponible ; réessayez plus tard. |

## Exemple

```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`
