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?