Spaces:
Runtime error
Runtime error
const passport = require('passport'); | |
const express = require('express'); | |
const router = express.Router(); | |
const config = require('../../../config/loader'); | |
const domains = config.domains; | |
const isProduction = config.isProduction; | |
/** | |
* Google Routes | |
*/ | |
router.get( | |
'/google', | |
passport.authenticate('google', { | |
scope: ['openid', 'profile', 'email'], | |
session: false, | |
}), | |
); | |
router.get( | |
'/google/callback', | |
passport.authenticate('google', { | |
failureRedirect: `${domains.client}/login`, | |
failureMessage: true, | |
session: false, | |
scope: ['openid', 'profile', 'email'], | |
}), | |
(req, res) => { | |
const token = req.user.generateToken(); | |
res.cookie('token', token, { | |
expires: new Date(Date.now() + eval(process.env.SESSION_EXPIRY)), | |
httpOnly: false, | |
secure: isProduction, | |
}); | |
res.redirect(domains.client); | |
}, | |
); | |
router.get( | |
'/facebook', | |
passport.authenticate('facebook', { | |
scope: ['public_profile', 'email'], | |
session: false, | |
}), | |
); | |
router.get( | |
'/facebook/callback', | |
passport.authenticate('facebook', { | |
failureRedirect: `${domains.client}/login`, | |
failureMessage: true, | |
session: false, | |
scope: ['public_profile', 'email'], | |
}), | |
(req, res) => { | |
const token = req.user.generateToken(); | |
res.cookie('token', token, { | |
expires: new Date(Date.now() + eval(process.env.SESSION_EXPIRY)), | |
httpOnly: false, | |
secure: isProduction, | |
}); | |
res.redirect(domains.client); | |
}, | |
); | |
router.get( | |
'/openid', | |
passport.authenticate('openid', { | |
session: false, | |
}), | |
); | |
router.get( | |
'/openid/callback', | |
passport.authenticate('openid', { | |
failureRedirect: `${domains.client}/login`, | |
failureMessage: true, | |
session: false, | |
}), | |
(req, res) => { | |
const token = req.user.generateToken(); | |
res.cookie('token', token, { | |
expires: new Date(Date.now() + eval(process.env.SESSION_EXPIRY)), | |
httpOnly: false, | |
secure: isProduction, | |
}); | |
res.redirect(domains.client); | |
}, | |
); | |
router.get( | |
'/github', | |
passport.authenticate('github', { | |
scope: ['user:email', 'read:user'], | |
session: false, | |
}), | |
); | |
router.get( | |
'/github/callback', | |
passport.authenticate('github', { | |
failureRedirect: `${domains.client}/login`, | |
failureMessage: true, | |
session: false, | |
scope: ['user:email', 'read:user'], | |
}), | |
(req, res) => { | |
const token = req.user.generateToken(); | |
res.cookie('token', token, { | |
expires: new Date(Date.now() + eval(process.env.SESSION_EXPIRY)), | |
httpOnly: false, | |
secure: isProduction, | |
}); | |
res.redirect(domains.client); | |
}, | |
); | |
router.get( | |
'/discord', | |
passport.authenticate('discord', { | |
scope: ['identify', 'email'], | |
session: false, | |
}), | |
); | |
router.get( | |
'/discord/callback', | |
passport.authenticate('discord', { | |
failureRedirect: `${domains.client}/login`, | |
failureMessage: true, | |
session: false, | |
scope: ['identify', 'email'], | |
}), | |
(req, res) => { | |
const token = req.user.generateToken(); | |
res.cookie('token', token, { | |
expires: new Date(Date.now() + eval(process.env.SESSION_EXPIRY)), | |
httpOnly: false, | |
secure: isProduction, | |
}); | |
res.redirect(domains.client); | |
}, | |
); | |
module.exports = router; | |