Ich verwende Passport.js, um einen Benutzer mit Benutzername und Passwort anzumelden. Ich verwende im Wesentlichen den Beispielcode von der Passport-Site. Hier sind die relevanten Teile meines Codes:Passport.js: Wie kann nach der Authentifizierung auf das Benutzerobjekt zugegriffen werden?
app.use(passport.initialize());
app.use(passport.session());
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(obj, done) {
done(null, obj);
});
passport.use(new LocalStrategy(function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) {
return done(err);
}
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
app.post('/login',
passport.authenticate('local', { failureRedirect: '/login/fail', failureFlash: false }),
function(req, res) {
// Successful login
//console.log("Login successful.");
// I CAN ACCESS req.user here
});
Dies scheint richtig zu loggen. Allerdings würde ich gerne in der Lage sein, die Informationen des angemeldeten Benutzers in anderen Teilen für den Zugriff des Codes, wie zum Beispiel:
app.get('/test', function(req, res){
// How can I get the user's login info here?
console.log(req.user); // <------ this outputs undefined
});
ich weitere Fragen auf SO geprüft habe, aber ich bin mir nicht sicher, was ich tue falsch hier. Vielen Dank!
Dieser Setup-Code für die Unterstützung gibt nicht an, wie der Benutzer schließlich aus der Sitzung übernommen wird. –