2013-04-16 6 views
1

J'ai actuellement une application mongoose/express/passportjs avec laquelle je peux me connecter et sortir avec succès. Toutefois, seul l'ID utilisateur est stocké dans la session. Je voudrais le magasin l'objet utilisateur entier.Passport.js - stocker des informations dans la session

Voici le code que j'utilise:

passport.serializeUser(function(user, done) { 
    done(null, user._id); 
}); 

passport.deserializeUser(function(_id, done) { 
    done(null, { _id: _id }); 
}); 

fonctionne très bien, voici pourquoi j'ai essayé de sérialiser l'utilisateur entier:

passport.serializeUser(function(user, done) { 
    done(null, user._id); 
}); 

passport.deserializeUser(function(user, done) { 
    done(null, user); 
}); 

Cependant, il ne stocke aucune session avec ce .

Qu'est-ce que je fais mal?

+0

Ce n'est pas vraiment une réponse directe à votre question, mais pourquoi est votre méthode de deserializeUser utilisant {_id: _id} pour le rappel ? Normalement, vous utiliseriez une requête Mongoose dans cette méthode pour rechercher l'objet à partir de la base de données en fonction du _id qui a été transmis. –

Répondre

1

En serializeUser vous devez passer à l'utilisateur entier à done:

passport.serializeUser(function(user, done) { 
    done(null, user); 
}); 

passport.deserializeUser(function(user, done) { 
    done(null, user); 
}); 
Questions connexes