passport.js 838 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. const passport = require('passport');
  2. const LocalStrategy = require('passport-local');
  3. const User = require('../models/user');
  4. const keys = require('../keys');
  5. // Only For Session Authentication !
  6. passport.serializeUser(function(user, done) {
  7. done(null, user.id)
  8. })
  9. passport.deserializeUser(function(id, done) {
  10. User.findById(id, function(err, user) {
  11. done(err, user)
  12. })
  13. })
  14. passport.use(new LocalStrategy({
  15. usernameField: 'email',
  16. passwordField: 'password'
  17. }, (email, password, done) => {
  18. User.findOne({email}, function(err, user) {
  19. if (err) { return done(err); }
  20. if (!user) { return done(null, false) }
  21. user.comparePassword(password, function(err, isMatch) {
  22. if (err) { return done(err); }
  23. if (!isMatch) { return done(null, false) }
  24. return done(null, user)
  25. })
  26. })
  27. }))