Flow OAuth 2.0 + PKCE
Voir Quickstart pour l'exemple end-to-end.
Pourquoi PKCE est obligatoire
PKCE (Proof Key for Code Exchange) protège contre l'interception du code d'autorisation, en particulier sur mobile et SPA où le client_secret ne peut pas être stocké de manière sûre.
// Génère un code_verifier aléatoire
const verifier = base64url(crypto.getRandomValues(new Uint8Array(32)));
// Le code_challenge est sa SHA-256
const challenge = base64url(await crypto.subtle.digest('SHA-256', new TextEncoder().encode(verifier)));
Tu envoies code_challenge dans /authorize et le verifier dans /token.