Guest User

Untitled

a guest
Sep 27th, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. // Passport Requires
  2. const passport = require('passport');
  3. const session = require('express-session');
  4. var ActiveDirectoryStrategy = require('passport-activedirectory');
  5.  
  6. // Setup
  7. app.use(session({
  8. secret: 'secret',
  9. resave: false,
  10. saveUninitialized: false,
  11. cookie: { secure: false, maxAge: 600000 }
  12. }));
  13.  
  14. app.use(passport.initialize());
  15. app.use(passport.session());
  16.  
  17. passport.serializeUser(function(user, done) {
  18. console.log('userStrategy -- serialized:', user)
  19. done(null, user);
  20. });
  21.  
  22. passport.deserializeUser(function(user, done) {
  23. console.log('userStrategy -- deserializeUser', user)
  24. done(null, user);
  25. });
  26.  
  27. passport.use(new ActiveDirectoryStrategy({
  28. integrated: false,
  29. passReqToCallback: true,
  30. ldap: {
  31. url: "url",
  32. baseDN: "baseDN",
  33. username: `username`,
  34. password: `password`
  35. }
  36. }, function (req, profile, ad, done) {
  37. ad.isUserMemberOf(profile._json.dn, 'Access Group', function (err, isMember) {
  38. console.log('isMember:', isMember)
  39. if (err) {
  40. return done(err)
  41. } else {
  42. return done(null, profile)
  43. }
  44. })
  45. }))
  46.  
  47. // Login Route
  48. app.post('/login',
  49. passport.authenticate('ActiveDirectory', { failWithError: true }),
  50. function (req, res) {
  51. console.log('Authenticated');
  52. return res.status(200).send(req.user);
  53. }, function (err) {
  54. console.log('Not Authenticated');
  55. return res.sendStatus(401).send(err);
  56. }
  57. )
  58.  
  59. // Test endpoint to check whether user is authenticated
  60. app.get('/test', function(req, res) {
  61. if (req.isAuthenticated()) {
  62. res.send('Youre authenticated!')
  63. } else {
  64. res.send('Youre not authenticated!')
  65. }
  66. })
Add Comment
Please, Sign In to add comment