Skip to content

Instantly share code, notes, and snippets.

@anhnt
Created May 13, 2014 10:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anhnt/e59c4e8180ffc294d0ee to your computer and use it in GitHub Desktop.
Save anhnt/e59c4e8180ffc294d0ee to your computer and use it in GitHub Desktop.
// api/services/passport.js
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var bcrypt = require('bcrypt-nodejs');
passport.serializeUser(function(user, next) {
next(null, user.id);
});
passport.deserializeUser(function(id, next) {
User.findOne(id).done(next);
});
// Put your Passport config logic here
passport.use(new LocalStrategy(
function(username, password, done) {
// Seem User model does not exist
User.findOne({
username: username
}).done(function(err, user) {
console.log(err);
if (err) {
return done(err);
}
if (!user) {
return done(null, false, {
message: 'Unknown user ' + username
});
}
// Load hash from your password DB.
bcrypt.compare(password, user.password, function(err, res) {
if (res) {
return done(null, user);
} else {
return done(null, false, {
message: 'Invalid password'
});
}
});
});
}
));
// Make passport globally available
module.exports = passport;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment