obs-portal/config/passport.js

29 lines
807 B
JavaScript
Raw Normal View History

2020-11-20 10:02:30 +00:00
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const mongoose = require('mongoose');
const User = mongoose.model('User');
2020-11-20 10:02:30 +00:00
passport.use(
new LocalStrategy(
{
usernameField: 'user[email]',
passwordField: 'user[password]',
},
function (email, password, done) {
User.findOne({ email: email })
.then(function (user) {
if (!user || !user.validPassword(password)) {
return done(null, false, { errors: { 'email or password': 'is invalid' } });
}
2020-11-20 10:02:30 +00:00
if (user && user.needsEmailValidation) {
return done(null, false, { errors: { 'E-Mail-Bestätigung': 'noch nicht erfolgt' } });
}
2020-11-20 10:02:30 +00:00
return done(null, user);
})
.catch(done);
},
),
);