Configuration OAuth
TrocOS supporte la connexion avec GitHub, Discord et Slack en plus de l'email et du mot de passe. Les boutons OAuth n'apparaissent que si les variables d'environnement correspondantes sont définies — l'application fonctionne parfaitement avec uniquement email/mot de passe.
Comment ça fonctionne
Les identifiants OAuth sont transmis via des variables d'environnement. Définissez uniquement les fournisseurs que vous souhaitez activer ; laissez les autres non définis.
Le format de l'URL de callback pour tous les fournisseurs est :
https://votre-domaine.com/auth/FOURNISSEUR/callbackOù FOURNISSEUR est github, discord ou slack.
GitHub
1. Créer une GitHub OAuth App
Allez dans GitHub → Paramètres → Developer settings → OAuth Apps → New OAuth App.
Remplissez :
- Application name : TrocOS (ou le nom de votre communauté)
- Homepage URL :
https://votre-domaine.com - Authorization callback URL :
https://votre-domaine.com/auth/github/callback
Sauvegardez votre Client ID et Client Secret.
2. Définir les variables d'environnement
GITHUB_CLIENT_ID=votre_client_id
GITHUB_CLIENT_SECRET=votre_client_secretDiscord
1. Créer une application Discord
Allez sur le portail développeur Discord et cliquez sur New Application.
Sous OAuth2 → Redirects, ajoutez :
https://votre-domaine.com/auth/discord/callbackNotez votre Client ID et Client Secret depuis l'onglet OAuth2.
Scopes requis : identify, email
2. Définir les variables d'environnement
DISCORD_CLIENT_ID=votre_client_id
DISCORD_CLIENT_SECRET=votre_client_secretSlack
1. Créer une Slack App
Allez sur api.slack.com/apps et cliquez sur Create New App → From scratch.
Sous OAuth & Permissions → Redirect URLs, ajoutez :
https://votre-domaine.com/auth/slack/callbackScopes requis (sous User Token Scopes) : openid, email, profile
Sauvegardez votre Client ID et Client Secret.
2. Définir les variables d'environnement
SLACK_CLIENT_ID=votre_client_id
SLACK_CLIENT_SECRET=votre_client_secretVérification
Après avoir redémarré l'application, la page de connexion affichera les boutons OAuth pour chaque fournisseur configuré. Si les variables d'un fournisseur sont absentes, son bouton n'apparaîtra pas — c'est intentionnel et sécurisé.