Files
CDN-APP-INSIDER/routes/Auth/ActiveDirectory.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

39 lines
1.3 KiB
JavaScript

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.render('AuthLogin', { isAuthenticated: false, errorMessage: err.message, setupData: {}, showActiveDirectoryForm: true, currentUrl: req.originalUrl });
}
if (!user) {
return res.render('AuthLogin', { isAuthenticated: false, errorMessage: 'L\'utilisateur n\'est pas autorisé.', 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;