Files
Femboy-Croissant-Bot/server/OAUTH_SETUP.md
2026-03-15 12:22:42 +01:00

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

  1. Va sur le Discord Developer Portal
  2. Clique sur "New Application" (Nouvelle Application)
  3. Donne un nom à ton application (ex: "Femboy Croissant Transcripts")
  4. Clique sur "Create" (Créer)

Étape 2 : Récupérer le Client ID

  1. Dans le menu de gauche, clique sur "OAuth2"
  2. Tu verras ton Client ID dans la section "Client Information"
  3. Copie ce Client ID (tu en auras besoin plus tard)

Étape 3 : Créer un Client Secret

  1. Toujours dans "OAuth2", scroll jusqu'à la section "Client Secret"
  2. Clique sur "Reset Secret" (Réinitialiser le Secret)
  3. ⚠️ ATTENTION : Copie immédiatement le Client Secret qui s'affiche, car il ne sera plus visible après !
  4. Si tu l'as perdu, tu devras le régénérer

Étape 4 : Configurer les Redirects

  1. Toujours dans "OAuth2", scroll jusqu'à la section "Redirects"

  2. Clique sur "Add Redirect" (Ajouter une redirection)

  3. Tu peux ajouter PLUSIEURS URLs ! Ajoute-les une par une :

    Pour le développement local :

    http://localhost:3000/auth/discord/callback
    

    Pour 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 !

  4. Après avoir ajouté chaque URL, clique sur "Save Changes" (Enregistrer les modifications)

Étape 5 : Configurer les Scopes

  1. Dans la section "Scopes" (juste au-dessus de Redirects)
  2. 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_ID et CLIENT_SECRET (même variables que le bot)
  • Ou DISCORD_CLIENT_ID et DISCORD_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 .env pour utiliser https://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 ?

  1. Active le mode développeur dans Discord : Paramètres → Avancé → Mode développeur
  2. Clic droit sur ton nom/avatar → "Copier l'ID"

Étape 8 : Tester

  1. Redémarre le serveur : npm run server
  2. Va sur http://localhost:3000
  3. Tu devrais être redirigé vers la page de login Discord
  4. Clique sur "Se connecter avec Discord"
  5. Autorise l'application
  6. Tu devrais être redirigé vers le dashboard !

Dépannage

Erreur : "Invalid redirect_uri"

  • Vérifie que l'URL dans DISCORD_CALLBACK_URL correspond exactement à une des URLs dans les Redirects du Discord Developer Portal
  • Les URLs doivent correspondre caractère par caractère (y compris http:// vs https://)
  • Tu peux ajouter plusieurs URLs dans les Redirects, mais dans .env tu 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-discord est installé : npm install passport-discord
  • Vérifie que les variables DISCORD_CLIENT_ID et DISCORD_CLIENT_SECRET sont 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 :

  1. Configure un domaine (ex: transcript.syxpi.fr)
  2. Configure HTTPS (Let's Encrypt avec Certbot)
  3. Configure un reverse proxy (Nginx/Apache) pointant vers le port 3000
  4. Mets à jour les Redirects dans le Discord Developer Portal avec l'URL de production
  5. Mets à jour DISCORD_CALLBACK_URL dans .env avec l'URL de production
  6. Change SESSION_SECRET pour une valeur aléatoire sécurisée
  7. Configure NODE_ENV=production dans .env

Sécurité

  • ⚠️ NE PARTAGE JAMAIS ton Client Secret
  • ⚠️ NE COMMIT JAMAIS ton fichier .env dans Git
  • ⚠️ Utilise des secrets forts pour SESSION_SECRET en production
  • ⚠️ Active HTTPS en production (obligatoire pour les cookies sécurisés)

Ressources