const DISCORD_CLIENT_ID = "your_client_id"; const DISCORD_CLIENT_SECRET = "your_client_secret"; const DISCORD_CALLBACK_URL = "http://localhost:3000/auth/discord/callback"; const SESSION_SECRET = "your_session_secret"; // ...existing code... const express = require('express'); const session = require('express-session'); const passport = require('passport'); const DiscordStrategy = require('passport-discord').Strategy; const SQLite = require('sqlite3').verbose(); const path = require('path'); const routes = require('./routes'); const app = express(); // DB SQLite const db = new SQLite.Database('./database.sqlite', (err) => { if (err) console.error('Erreur SQLite:', err); else db.run('CREATE TABLE IF NOT EXISTS users (id TEXT PRIMARY KEY, username TEXT, discriminator TEXT, avatar TEXT)'); }); // Sessions app.use(session({ secret: SESSION_SECRET, resave: false, saveUninitialized: false })); // Passport config passport.serializeUser((user, done) => done(null, user.id)); passport.deserializeUser((id, done) => { db.get('SELECT * FROM users WHERE id = ?', [id], (err, row) => { if (err) return done(err); done(null, row); }); }); passport.use(new DiscordStrategy({ clientID: DISCORD_CLIENT_ID, clientSecret: DISCORD_CLIENT_SECRET, callbackURL: DISCORD_CALLBACK_URL, scope: ['identify'] }, (accessToken, refreshToken, profile, done) => { db.run('INSERT OR REPLACE INTO users (id, username, discriminator, avatar) VALUES (?, ?, ?, ?)', [profile.id, profile.username, profile.discriminator, profile.avatar], (err) => { if (err) return done(err); done(null, profile); } ); })); app.use(passport.initialize()); app.use(passport.session()); // EJS app.set('view engine', 'ejs'); app.set('views', path.join(__dirname, 'views')); // Routes app.use('/', routes); const PORT = process.env.PORT || 3000; app.listen(PORT, () => console.log('Serveur lancé sur http://localhost:' + PORT));