Files
CDN-APP-INSIDER/routes/Auth/Discord.js
Dinawo d76a781680
Some checks failed
continuous-integration/drone/push Build was killed
continuous-integration/drone Build was killed
Update v1.0.0-beta.12, addition of external APIs and optimization
2024-05-28 20:20:52 +02:00

68 lines
1.8 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 userData = getUserData();
let setupData;
getSetupData().then(data => {
setupData = data;
if (setupData[0].discord !== undefined) {
const DiscordStrategy = require('../../models/Passport-Discord');
}
getUserData().then(user => {
if (user.identifyURL) {
router.get("/auth/discord", (req, res) => {
res.redirect(user.identifyURL);
});
}
router.get("/", (req, res) => {
res.redirect(setupData.discord.identifyURL);
});
});
});
router.use(passport.initialize());
router.use(passport.session());
passport.deserializeUser((user, done) => {
done(null, user);
});
router.get('/callback', (req, res, next) => {
passport.authenticate('discord', (err, user, info) => {
if (err) {
return next(err);
}
if (!user) {
return res.redirect('/auth/login');
}
req.logIn(user, (loginErr) => {
if (loginErr) {
return next(loginErr);
}
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');
});
}
});
});
})(req, res, next);
});
module.exports = router;