backend/passport.js

33 lines
868 B
JavaScript
Raw Normal View History

2023-07-28 03:36:07 +00:00
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;