OAuth2 PKCE
Advanced Ecosystem 🟡 MidDéfinition
Extension d'OAuth 2.0 (Proof Key for Code Exchange, RFC 7636) qui protège le flux Authorization Code contre l'interception du code : le client envoie un code_challenge (SHA-256 d'un code_vérifier aléatoire) puis prouve qu'il détient le vérifier à l'échange du jeton. OAuth 2.1 rend PKCE obligatoire pour tous les clients, publics comme confidentiels.
Analogie
Envoyer un cadenas ouvert avec la demande, puis prouver qu'on a la clé en l'ouvrant lors de l'échange.
Exemple de code
const verifier = generateRandomString(128);
const challenge = base64url(sha256(verifier));
// Step 1: Send challenge
`&code_challenge=${challenge}&code_challenge_method=S256`
// Step 2: Send verifier to get token
`&code_verifier=${verifier}`
Cas d'usage
Sécuriser le flow OAuth2 dans les SPA et apps mobiles qui ne peuvent pas garder un client_secret.
Anti-pattern
Utiliser le flow Implicit ou Authorization Code sans PKCE dans une application publique (SPA, mobile).
Termes liés
Sources
Fiche mise à jour le 2026-09-27