const express = require('express'); const router = express.Router(); const sendRequest = require('utils/send-request'); const sendResponse = require('utils/send-response'); const validate = require('utils/validator'); //const passport = require('utils/passport-func')(); const conf = require('utils/config'); let logoutRedirectUrl; module.exports = function(passport) { switch(conf.get('passport.strategy')) { case "local": console.log('passport local routes'); logoutRedirectUrl = conf.get('passport.routes.local.logoutRedirectUrl'); router.get('/login', (req, res) => { res.redirect(conf.get('passport.routes.local.loginPageUrl')); }); router.post('/login', passport.authenticate('local', { failureFlash: true }), (req, res) => { // this function runs if success console.log('post login'); req.session.regenerate(function(err) { if (err) { res.json(err); } }); console.log('Login success... returning user in json'); res.json(req.user); }); break; case "saml": logoutRedirectUrl = conf.get('passport.routes.saml.logoutRedirectUrl'); router.get('/login', passport.authenticate('saml', { successRedirect: '/', failureRedirect: '/login' }) ); router.post(conf.get('passport.configStrategy.saml.path'), passport.authenticate('saml', { failureRedirect: '/', failureFlash: false }), (req, res) => { // code to get user permission console.log(req.user); // redirect to dashboard res.redirect('http://localhost:4200'); } ); break; default: logoutRedirectUrl = '/'; } router.get('/loggedin', (req, res) => { if (req.isUnauthenticated()) { console.log('GET /loggedin not authenticated'); return res.json({ error: 'not logged in'}); } else { console.log('authenticated'); console.log('GET /loggedin ' + req.session.id); return res.json(req.user); } }); router.get('/logout', (req, res) => { console.log('User logged out.'); req.session.destroy(); req.logout(); res.redirect(logoutRedirectUrl); }); return router; };