64 lines
1.7 KiB
JavaScript
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;
|