const passport = require("passport"); const LocalStrategy = require("passport-local").Strategy; const bcrypt = require("bcryptjs"); const User = require("./models/user.js"); const passportInit = () => { passport.use( "local", new LocalStrategy(async function verify(username, password, done) { const user = await User.findOne({ username: username }).lean().exec(); if (!user) { return done(null, false, { message: "Incorrect username" }); } const match = await bcrypt.compare(password, user.password); if (!match) { return done(null, false, { message: "Incorrect password" }); } return done(null, user); }) ); passport.serializeUser((user, done) => { done(null, user); }); passport.deserializeUser(async (user, done) => { try { done(null, user); } catch (err) { done(err); } }); }; module.exports = passportInit;