const passport = require('passport'); const LocalStrategy = require('passport-local').Strategy; const User = require('./models/User'); passport.use(new LocalStrategy( async (username, password, done) => { try { const user = await User.findOne({ username: username }); if (!user) { return done(null, false, { message: 'Incorrect username.' }); } if (!user.validPassword(password)) { // you will need to implement validPassword method in your User model return done(null, false, { message: 'Incorrect password.' }); } return done(null, user); } catch (err) { return done(err); } } )); passport.serializeUser((user, done) => { done(null, user.id); }); passport.deserializeUser(async (id, done) => { const user = await User.findById(id); done(null, user); }); module.exports = passport;