2013-10-08 7 views
5

Utilizzo la strategia locale PassportJS per l'autenticazione utente, funziona perfettamente. Tuttavia, quando provo a console.log (req.user) su qualsiasi pagina autenticata, ottengo tutti i dettagli della voce del DB dell'utente attualmente loggato. È normale ? Compresi hashing passwordPassportJS req.user invio di tutti i dati utente

{ 
    name: 'Test', 
    email: '[email protected]', 
    password: '$2a$10$aw2aMtXtrmKHi.kd97c0NeMOu6Y0hlcM4xk2VuqfneLYdEkc676eq', 
    phone: 9xxxxx6, 
    _enabled: true, 
    _id: 5253f326003e55f028000001, 
    __v: 0 
} 

La mia strategia locale è definita come questo.

passport.use(new strategy(function(username, password, done) { 
User.findOne({ "email": username }, function(err, user) { 
    if (err) { return done(err); } 
    if (!user) { return done(null, false, { message: 'Unknown user ' + username }); } 
    if(user._enabled==false) return done(null,false,{message: "Dear "+user.name+", Please verify your email first!"}); 
    if(bcrypt.compareSync(password,user.password)){ 
    return done(null, user); 
    app.set("userEmail",username); 
    } 
    else { 
    return done(null, false, { message: 'Invalid password' }); 
    } 
db.close(); 
}) 
})); 

C'è qualche possibilità che questi dati possano essere manomessi?

risposta

0

Okei Ho avuto la risposta, non stavo cervializzando correttamente!

passport.deserializeUser(function(id, done) { 
    User.findOne({_id:id}, function (err, user) { 
    done(err, user._id); 
    }); 
}); 
Problemi correlati