TutosLe Potager du Web
← Retour aux tutos
Authentification Intermédiaire v1.0 Vérifié le 01/09/2026

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

1. Créer l'application

Dans le portail Discord Developer, crée une application et note son Application/Client ID.

2

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

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

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

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

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

v1.0Création et vérification du tuto.

L'historique détaillé reste aussi disponible dans Git.