I have tried in vane to get the simple true/false to verify if user exists using mongo and passport in an express/nodejs app. I tried using callbacks as you mentioned, but don't seem to be able to get functions called in sequence. Should I use a flow-control strategy?
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var users = require('./users');
module.exports = function () {
var user ={};
passport.use(new LocalStrategy ({
passReqToCallback : true
},
function(req, username, password, done){
console.log('im inside local strategy');
// - here is my problem...
var validateUser = users.checkPassword(username, password);
console.log('this is validate user: '+validateUser);
// -- this block of code should validate the existence of the user in Mongodb.
if (validateUser) {
var user = {username:username};
return done(null, user);
} else {
return done(null, false);
}
}));
passport.serializeUser(function(user, done){
console.log('serializing '+user.username);
if(user){
done(null, user.username);
}
});
passport.deserializeUser(function(username, done){
console.log('deserializing ' + username);
//find user with username as key -- this is a simple example
user = {username:username}; // founder user
if (user) {
done(null, user);
} else {
done(null, false);
}
});
};
This is my users.checkPassword function (which is linked to mongo (via native driver)):