Files
CDN-APP-INSIDER/routes/Auth/ActiveDirectory.js
Dinawo 44631acfc6
All checks were successful
continuous-integration/drone/push Build is passing
Urgent correction of version v1.0.0-beta.14 due to crash issues when acting on the CDN.
2024-07-12 18:13:03 +02:00

53 lines
1.5 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) {
console.error("Authentication error:", err);
return res.status(401).json({
isAuthenticated: false,
errorMessage: err.message,
setupData: {},
showActiveDirectoryForm: true,
currentUrl: req.originalUrl
});
}
if (!user) {
return res.status(401).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 res.redirect('/dpanel/dashboard');
});
})(req, res, next);
}, checkUserExistsAD);
module.exports = router;