const express = require('express'); const router = express.Router(); const passport = require('passport'); require('../../models/Passport-ActiveDirectory'); const { checkUserExistsAD } = require('../../Middlewares/UserIDMiddlewareAD'); const rateLimit = require("express-rate-limit"); const limiter = rateLimit({ windowMs: 15 * 60 * 1000, max: 100 }); router.post('/', limiter, (req, res, next) => { passport.authenticate('ActiveDirectory', (err, user) => { if (err) { return res.json({ isAuthenticated: false, errorMessage: err.message, setupData: {}, showActiveDirectoryForm: true, currentUrl: req.originalUrl }); } if (!user) { return res.json({ isAuthenticated: false, errorMessage: 'User is not authorized.', setupData: {}, showActiveDirectoryForm: true, currentUrl: req.originalUrl }); } req.user = { ...user._json, name: user._json.sAMAccountName, id: user._json.sAMAccountName, }; req.logIn(req.user, function(err) { if (err) { return next(err); } req.session.user = req.user; return next(); }); })(req, res, next); }, checkUserExistsAD); module.exports = router;