6.1 KiB
Guide de Configuration OAuth Discord
Ce guide t'explique comment configurer l'authentification Discord OAuth2 pour le serveur de transcripts.
Étape 1 : Créer une Application Discord
- Va sur le Discord Developer Portal
- Clique sur "New Application" (Nouvelle Application)
- Donne un nom à ton application (ex: "Femboy Croissant Transcripts")
- Clique sur "Create" (Créer)
Étape 2 : Récupérer le Client ID
- Dans le menu de gauche, clique sur "OAuth2"
- Tu verras ton Client ID dans la section "Client Information"
- Copie ce Client ID (tu en auras besoin plus tard)
Étape 3 : Créer un Client Secret
- Toujours dans "OAuth2", scroll jusqu'à la section "Client Secret"
- Clique sur "Reset Secret" (Réinitialiser le Secret)
- ⚠️ ATTENTION : Copie immédiatement le Client Secret qui s'affiche, car il ne sera plus visible après !
- Si tu l'as perdu, tu devras le régénérer
Étape 4 : Configurer les Redirects
-
Toujours dans "OAuth2", scroll jusqu'à la section "Redirects"
-
Clique sur "Add Redirect" (Ajouter une redirection)
-
Tu peux ajouter PLUSIEURS URLs ! Ajoute-les une par une :
Pour le développement local :
http://localhost:3000/auth/discord/callbackPour la production (si tu as un domaine) :
https://transcripts.syxpi.fr/auth/discord/callback💡 Astuce : Tu peux ajouter les deux URLs pour pouvoir tester en local ET utiliser en production. Discord accepte plusieurs redirect URLs !
-
Après avoir ajouté chaque URL, clique sur "Save Changes" (Enregistrer les modifications)
Étape 5 : Configurer les Scopes
- Dans la section "Scopes" (juste au-dessus de Redirects)
- Coche ces cases :
- ✅
identify- Pour récupérer les infos de base de l'utilisateur - ✅
guilds- Pour vérifier les rôles de l'utilisateur (optionnel, pour plus tard)
- ✅
Étape 6 : Ajouter les variables dans .env
Ouvre ton fichier .env à la racine du projet et ajoute ces lignes :
# Discord OAuth
# Tu peux utiliser CLIENT_ID et CLIENT_SECRET (déjà utilisés par le bot)
# OU DISCORD_CLIENT_ID et DISCORD_CLIENT_SECRET (dédiés à l'OAuth)
CLIENT_ID=ton_client_id_ici
CLIENT_SECRET=ton_client_secret_ici
# Pour le développement local :
DISCORD_CALLBACK_URL=http://localhost:3000/auth/discord/callback
# Pour la production (décommente quand tu déploies en prod) :
# DISCORD_CALLBACK_URL=https://transcripts.syxpi.fr/auth/discord/callback
Exemple :
CLIENT_ID=123456789012345678
CLIENT_SECRET=abcdefghijklmnopqrstuvwxyz123456789
DISCORD_CALLBACK_URL=http://localhost:3000/auth/discord/callback
💡 Important :
- Le serveur accepte
CLIENT_IDetCLIENT_SECRET(même variables que le bot) - Ou
DISCORD_CLIENT_IDetDISCORD_CLIENT_SECRET(variables dédiées) - Dans le Discord Developer Portal, tu peux ajouter les deux URLs dans les Redirects
- Dans ton
.env, tu mets seulement l'URL que tu utilises actuellement - Pour tester en local : utilise
http://localhost:3000/auth/discord/callback - Pour la production : change le
.envpour utiliserhttps://transcripts.syxpi.fr/auth/discord/callback
Étape 7 : Configurer les Modérateurs (Optionnel)
Si tu veux que certains utilisateurs aient accès à tous les transcripts (pas seulement les leurs), ajoute leurs IDs Discord dans .env :
MODERATOR_IDS=361526553940721684,autre_id_ici,encore_un_autre_id
Comment trouver ton ID Discord ?
- Active le mode développeur dans Discord : Paramètres → Avancé → Mode développeur
- Clic droit sur ton nom/avatar → "Copier l'ID"
Étape 8 : Tester
- Redémarre le serveur :
npm run server - Va sur
http://localhost:3000 - Tu devrais être redirigé vers la page de login Discord
- Clique sur "Se connecter avec Discord"
- Autorise l'application
- Tu devrais être redirigé vers le dashboard !
Dépannage
Erreur : "Invalid redirect_uri"
- Vérifie que l'URL dans
DISCORD_CALLBACK_URLcorrespond exactement à une des URLs dans les Redirects du Discord Developer Portal - Les URLs doivent correspondre caractère par caractère (y compris
http://vshttps://) - Tu peux ajouter plusieurs URLs dans les Redirects, mais dans
.envtu mets seulement celle que tu utilises actuellement - Vérifie qu'il n'y a pas d'espace ou de caractère invisible dans l'URL
Erreur : "Unknown authentication strategy"
- Vérifie que
passport-discordest installé :npm install passport-discord - Vérifie que les variables
DISCORD_CLIENT_IDetDISCORD_CLIENT_SECRETsont bien dans.env - Redémarre le serveur après avoir modifié
.env
Erreur : "Missing Access"
- Vérifie que tu as coché les bons scopes dans le Discord Developer Portal
- Vérifie que l'URL de callback est bien configurée
Le serveur démarre mais l'OAuth ne fonctionne pas
- Vérifie les logs du serveur : tu devrais voir "✅ Stratégie Discord OAuth configurée avec succès"
- Si tu vois un avertissement, vérifie tes variables d'environnement
Production
Pour déployer en production :
- Configure un domaine (ex:
transcript.syxpi.fr) - Configure HTTPS (Let's Encrypt avec Certbot)
- Configure un reverse proxy (Nginx/Apache) pointant vers le port 3000
- Mets à jour les Redirects dans le Discord Developer Portal avec l'URL de production
- Mets à jour
DISCORD_CALLBACK_URLdans.envavec l'URL de production - Change
SESSION_SECRETpour une valeur aléatoire sécurisée - Configure
NODE_ENV=productiondans.env
Sécurité
- ⚠️ NE PARTAGE JAMAIS ton Client Secret
- ⚠️ NE COMMIT JAMAIS ton fichier
.envdans Git - ⚠️ Utilise des secrets forts pour
SESSION_SECRETen production - ⚠️ Active HTTPS en production (obligatoire pour les cookies sécurisés)