Ich benutze Pass für die Autorisierung und ich speichern die Sitzung in Mongodb mit 'Connect-Mongo-Session' Modul. Ich habe bemerkt, dass nach einiger Zeit, wenn ich versuche, mich anzumelden, das Objekt req.user undefiniert wird, obwohl das Sitzungsobjekt in der Datenbank vorhanden ist und Pass- und Sitzungsdetails im req-Objekt vorhanden sind. Hier ist meine Session-Setup:Pass 'req.user' wird manchmal undefined manchmal
let store;
if(env === "development")
store = new MongoDBStore({ //Allows session to be stored and retreived even when server restarts.
uri: config.db,
collection: 'mySessions'
})
else {
store = new MongoDBStore({ //Allows session to be stored and retreived even when server restarts.
uri: config.db,
collection: 'Cosmos'
})
}
app.use(session({
store: store,
saveUninitialized: true,
resave: true,
secret: config.app.sessionSecret
}));
app.use(passport.initialize());
app.use(passport.session());
und hier ist der Code für die Serialisierung und:
passport.serializeUser((user, done) => {
done(null, user.id);
});
// Use Passport's 'deserializeUser' method to load the user document
passport.deserializeUser((id, done) => {
User.findOne({
_id: id
}, '-password -salt', (err, user) => {
done(err, user);
});
});