config/passport.js (34 lines of code) (raw):

// Copyright (c) 2017 Chandan B N. All rights reserved. const LocalStrategy = require('passport-local').Strategy; const User = require('../models/user'); const config = require('./conf'); const pbkdf2 = require('../lib/pbkdf2.js'); module.exports = function (passport) { // Local strategy passport.use(new LocalStrategy(function (username, password, done) { User.findOne({username: username}, function (err, user) { if (err) throw err; if (!user) { return done(null, false, { message: 'No user found' }); } pbkdf2.compare(password, user.password, function (err, same) { if (err) throw err; if (same) { return done(null, user); } else { return done(null, false, { message: 'Wrong password' }); } }); }); })); passport.serializeUser(function (user, done) { done(null, user.id); }); passport.deserializeUser(function (id, done) { User.findById(id, function (err, user) { done(err, user); }); }); };