mirror of
https://github.com/mmumshad/ansible-playable.git
synced 2025-02-15 04:42:05 +00:00
35 lines
1,000 B
JavaScript
35 lines
1,000 B
JavaScript
import passport from 'passport';
|
|
import {Strategy as LocalStrategy} from 'passport-local';
|
|
|
|
function localAuthenticate(User, email, password, done) {
|
|
User.findOne({
|
|
email: email.toLowerCase()
|
|
}).exec()
|
|
.then(user => {
|
|
if(!user) {
|
|
return done(null, false, {
|
|
message: 'This email is not registered.'
|
|
});
|
|
}
|
|
user.authenticate(password, function(authError, authenticated) {
|
|
if(authError) {
|
|
return done(authError);
|
|
}
|
|
if(!authenticated) {
|
|
return done(null, false, { message: 'This password is not correct.' });
|
|
} else {
|
|
return done(null, user);
|
|
}
|
|
});
|
|
})
|
|
.catch(err => done(err));
|
|
}
|
|
|
|
export function setup(User/*, config*/) {
|
|
passport.use(new LocalStrategy({
|
|
usernameField: 'email',
|
|
passwordField: 'password' // this is the virtual field on the model
|
|
}, function(email, password, done) {
|
|
return localAuthenticate(User, email, password, done);
|
|
}));
|
|
}
|