42 lines
834 B
JavaScript
Executable file
42 lines
834 B
JavaScript
Executable file
'use strict';
|
|
|
|
/**
|
|
* Module dependencies.
|
|
*/
|
|
var passport = require('passport'),
|
|
LocalStrategy = require('passport-local').Strategy,
|
|
User = require('mongoose').model('User');
|
|
|
|
module.exports = function () {
|
|
// Use local strategy
|
|
passport.use(new LocalStrategy({
|
|
usernameField: 'username',
|
|
passwordField: 'password'
|
|
},
|
|
function (username, password, done) {
|
|
User.findOne({
|
|
$or: [
|
|
{'username': username},
|
|
{'email': username}
|
|
]
|
|
}, function (err, user) {
|
|
if (err) {
|
|
return done(err);
|
|
}
|
|
if (!user) {
|
|
return done(null, false, {
|
|
message: 'Unknown user or invalid password'
|
|
});
|
|
}
|
|
if (!user.authenticate(password)) {
|
|
return done(null, false, {
|
|
message: 'Unknown user or invalid password'
|
|
});
|
|
}
|
|
|
|
return done(null, user);
|
|
});
|
|
}
|
|
));
|
|
};
|