Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Passport Requires
- const passport = require('passport');
- const session = require('express-session');
- var ActiveDirectoryStrategy = require('passport-activedirectory');
- // Setup
- app.use(session({
- secret: 'secret',
- resave: false,
- saveUninitialized: false,
- cookie: { secure: false, maxAge: 600000 }
- }));
- app.use(passport.initialize());
- app.use(passport.session());
- passport.serializeUser(function(user, done) {
- console.log('userStrategy -- serialized:', user)
- done(null, user);
- });
- passport.deserializeUser(function(user, done) {
- console.log('userStrategy -- deserializeUser', user)
- done(null, user);
- });
- passport.use(new ActiveDirectoryStrategy({
- integrated: false,
- passReqToCallback: true,
- ldap: {
- url: "url",
- baseDN: "baseDN",
- username: `username`,
- password: `password`
- }
- }, function (req, profile, ad, done) {
- ad.isUserMemberOf(profile._json.dn, 'Access Group', function (err, isMember) {
- console.log('isMember:', isMember)
- if (err) {
- return done(err)
- } else {
- return done(null, profile)
- }
- })
- }))
- // Login Route
- app.post('/login',
- passport.authenticate('ActiveDirectory', { failWithError: true }),
- function (req, res) {
- console.log('Authenticated');
- return res.status(200).send(req.user);
- }, function (err) {
- console.log('Not Authenticated');
- return res.sendStatus(401).send(err);
- }
- )
- // Test endpoint to check whether user is authenticated
- app.get('/test', function(req, res) {
- if (req.isAuthenticated()) {
- res.send('Youre authenticated!')
- } else {
- res.send('Youre not authenticated!')
- }
- })
Add Comment
Please, Sign In to add comment