localStrategy.js
1.13 KB
const LocalStrategy = require('passport-local').Strategy;
const bcrypt = require('bcrypt');
const models = require('../models/index');
module.exports = (passport) => {
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
}, async (email, password, done) => {
try {
let user = await models.User.findOne({where: {email}});
if (!user) {
return done(null, false, {info: '이메일 또는 비밀번호가 일치하지 않습니다'});
}
const result = await bcrypt.compare(password, user.hashedPassword);
if (!result) {
return done(null, false, {info: '이메일 또는 비밀번호가 일치하지 않습니다'});
}
user = await models.User.findOne({
where: {email},
attributes: ['id', 'email', 'nickName']
});
return done(null, user);
} catch (e) {
console.error(e);
return done(e);
}
})
);
};