Configurer une connexion Discord OAuth2 pour un site web
Configurer une application Discord pour authentifier des utilisateurs sans stocker leur mot de passe Discord.
1. Créer l'application
Dans le portail Discord Developer, crée une application et note son Application/Client ID.
2. Définir l'URL de redirection
Dans OAuth2, ajoute l'URL de callback exacte de ton site. L'URL utilisée dans la requête OAuth doit correspondre à une URL enregistrée.
3. Stocker le secret côté serveur
Pour une application web avec backend, le client secret reste dans .env/config serveur et n'est jamais envoyé au navigateur ni commité dans Git.
4. Générer un state aléatoire
Avant la redirection vers Discord, crée un state cryptographiquement aléatoire, stocke-le en session et vérifie-le au retour pour limiter les attaques CSRF.
5. Échanger le code côté serveur
Au callback, vérifie state puis échange le code d'autorisation contre un token avec l'endpoint OAuth2 Discord.
6. Lire l'identité et autoriser
Récupère l'identifiant Discord nécessaire, puis applique la liste blanche/les droits de ton application. Ne base pas l'autorisation uniquement sur un nom d'affichage.
🧯 Erreurs fréquentes
Invalid OAuth2 redirect_uri
Cause probable : L'URL de callback ne correspond pas exactement à celle enregistrée.
Correctif : Comparer protocole, domaine, chemin et slash final.
State mismatch
Cause probable : Session perdue ou tentative de callback non initiée par l'application.
Correctif : Annuler la connexion et relancer le flux ; ne jamais ignorer l'erreur state.
Notes
- La documentation officielle Discord consultée couvre surtout le flux OAuth2 et la sécurité state/redirect ; l'implémentation PHP exacte dépend du site.
Sources de vérification
Ces liens servent à recontrôler le tuto quand l'outil ou l'hébergeur évolue.
Historique de la fiche
L'historique détaillé reste aussi disponible dans Git.