Update Bot (j'ai plus le repo sur GitHub)
Qui c'est la conne qui a delete le repo sur GitHub? C'EST MOIIIII
This commit is contained in:
151
server/OAUTH_SETUP.md
Normal file
151
server/OAUTH_SETUP.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# 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](https://discord.com/developers/applications)
|
||||
2. Clique sur **"New Application"** (Nouvelle Application)
|
||||
3. Donne un nom à ton application (ex: "France Femboy 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 :
|
||||
|
||||
```env
|
||||
# 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 :**
|
||||
```env
|
||||
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` :
|
||||
|
||||
```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
|
||||
|
||||
- [Discord Developer Portal](https://discord.com/developers/applications)
|
||||
- [Documentation OAuth2 Discord](https://discord.com/developers/docs/topics/oauth2)
|
||||
- [Documentation passport-discord](https://github.com/nicholastay/passport-discord)
|
||||
|
||||
Reference in New Issue
Block a user