let express = require('express'); let router = express.Router(); let passport = require('passport'); let directory = require('../directory.js'); router.get('/selfservice/api', function (req, res) { response = 'Hello World!
'; console.log('User:', req.user); if (req.user) { // Query Active Directory for user details // username is the UPN let username = req.user.username; attributes = ['dn', 'memberOf']; response += 'Username: ' + req.user.username + '
'; response += 'First Name: ' + req.user.first_name + '
'; response += 'Last Name: ' + req.user.last_name + '
'; usertype_map = ['Unknown', 'Student', 'Parent']; response += 'User Type: ' + usertype_map[req.user.userType] + '
'; if (req.user.userType === directory.USER_TYPE.STUDENT) { response += 'Primary Parent: ' + req.user.primaryParent + '
'; } else if (req.user.userType === directory.USER_TYPE.PARENT) { response += 'Students: ' + req.user.students + '
'; } response += 'Logout'; res.send(response); } else { response += 'Login'; res.send(response); } }); router.get('/selfservice/api/logout', function (req, res) { req.logout(); res.redirect('/selfservice'); }); router.get('/selfservice/api/login', passport.authenticate('saml', { failureRedirect: '/selfservice/api', failureFlash: true }), function (req, res) { res.redirect(end); } ); router.use(function(req, res, next) { console.log('Received request:', req.method, req.url); console.log('Data:', req.body); next(); }); router.post('/selfservice/api/login/postResponse', passport.authenticate('saml', { failureRedirect: '/selfservice',successRedirect: '/selfservice', failureFlash: true }), function (req, res) { console.log('SAML authentication successful'); res.redirect('/selfservice'); } ); function validUser(req, res, next) { if (!req.user) { res.redirect('/api/login'); } next(); } module.exports = router;