Aujourd’hui, je vais vous raconter comment j’ai intégré l’authentification via OAuth avec l’API Twitch dans mes applications.
Contexte
J’utilise l’API Twitch pour me connecter au chat Twitch et intercepter les commandes de chat. Cette API est utilisée dans deux de mes applications : CesseZeApp et Cesse-Adventure. Pour l’authentification, j’utilise OAuth 2.0.
Pour utiliser l’API Twitch, il faut enregistrer son application. Twitch fournit alors un client ID et un client secret pour utiliser leur système d’authentification. Mon problème est que mes applications sont des clients qui se lancent directement sur un ordinateur, sans passer par un serveur tiers. Je ne peux donc pas utiliser la connexion Client Credentials d’OAuth, car cela exposerait mes identifiants à tous les utilisateurs de l’application.
Heureusement, OAuth propose le Device Grant Flow, conçu pour ce type de cas.
Device Grant Flow
Voici comment ce processus fonctionne de manière simplifiée :
- Génération du Code de Validation : J’appelle la route
/oauth2/device
pour générer l’URL de validation du code. - Validation dans le Navigateur : L’URL est ouverte dans le navigateur par défaut du PC.
- Obtention du Token : En attendant la validation du code sur la page du navigateur, la route
/oauth2/token
est appelée à intervalles réguliers jusqu’à l’obtention du token. - Accès à l’API : Une fois le token obtenu, je peux accéder à l’API.
Comme tout système d’authentification OAuth, un Refresh Token est fourni avec l’Access Token pour rafraîchir ce dernier avant son expiration.
Problème avec l’API Twitch
Cependant, selon la documentation officielle OAuth sur le Device Grant Flow, il est spécifié que la route du refresh token doit pouvoir être appelée sans avoir besoin du client secret, principe même de ce système d’authentification.
Malheureusement, l’API d’authentification de Twitch exige un client secret pour rafraîchir l’Access Token, ce qui pose problème dans mon cas.
En résumé, bien que le Device Grant Flow soit idéal pour mes applications, l’exigence du client secret par l’API Twitch pour le rafraîchissement des tokens complique l’intégration sécurisée de ce système.
J’espère que Twitch pourra ajuster cette exigence à l’avenir pour mieux s’aligner avec les principes de l’authentification OAuth et offrir plus de flexibilité aux développeurs.
Laisser un commentaire