Files
CDN-APP-INSIDER/routes/Auth/Discord.js
Dinawo 44631acfc6
All checks were successful
continuous-integration/drone/push Build is passing
Urgent correction of version v1.0.0-beta.14 due to crash issues when acting on the CDN.
2024-07-12 18:13:03 +02:00

64 lines
1.7 KiB
JavaScript

const express = require('express');
const router = express.Router();
const passport = require('passport');
const { checkUserExistsDiscord } = require('../../Middlewares/UserIDMiddlewareDiscord');
const { getUserData, getSetupData } = require('../../Middlewares/watcherMiddleware');
let setupData;
let user;
Promise.all([
getSetupData(),
getUserData()
]).then(([setup, userData]) => {
setupData = setup;
user = userData;
if (setupData[0].discord !== undefined) {
const DiscordStrategy = require('../../models/Passport-Discord');
}
router.get("/auth/discord", (req, res) => {
if (user && user.identifyURL) {
res.redirect(user.identifyURL);
} else {
res.redirect('/auth/login');
}
});
router.get("/", (req, res) => {
if (setupData && setupData.discord && setupData.discord.identifyURL) {
res.redirect(setupData.discord.identifyURL);
} else {
res.redirect('/auth/login');
}
});
});
router.use(passport.initialize());
router.use(passport.session());
passport.deserializeUser((user, done) => {
done(null, user);
});
router.get('/callback', passport.authenticate('discord', {
failureRedirect: '/auth/login'
}), (req, res, next) => {
checkUserExistsDiscord(req, res, () => {
if (req.userExists) {
return res.redirect('/dpanel/dashboard');
} else {
createUser(req.user, (createErr) => {
if (createErr) {
return next(createErr);
}
return res.redirect('/dpanel/dashboard');
});
}
});
});
module.exports = router;