43 lines
856 B
JavaScript
43 lines
856 B
JavaScript
const express = require('express');
|
|
const passport = require('passport');
|
|
const router = express.Router();
|
|
|
|
// Discord OAuth starten
|
|
router.get('/discord',
|
|
passport.authenticate('discord')
|
|
);
|
|
|
|
// Discord OAuth Callback
|
|
router.get('/discord/callback',
|
|
passport.authenticate('discord', {
|
|
failureRedirect: '/?error=login_failed',
|
|
}),
|
|
(req, res) => {
|
|
res.redirect('/');
|
|
}
|
|
);
|
|
|
|
// Abmelden
|
|
router.post('/logout', (req, res) => {
|
|
req.logout(() => {
|
|
res.json({ ok: true });
|
|
});
|
|
});
|
|
|
|
// Aktuellen User zurückgeben (für Frontend)
|
|
router.get('/me', (req, res) => {
|
|
if (!req.isAuthenticated()) {
|
|
return res.json({ user: null });
|
|
}
|
|
res.json({
|
|
user: {
|
|
id: req.user.id,
|
|
username: req.user.username,
|
|
avatar: req.user.avatar,
|
|
isAdmin: req.user.isAdmin,
|
|
}
|
|
});
|
|
});
|
|
|
|
module.exports = router;
|