【发布时间】:2017-10-01 06:09:02
【问题描述】:
我正在使用护照进行授权,并且我正在使用“connect-mongo-session”模块将会话保存在 mongodb 中。我注意到,当我尝试登录时,req.user 对象变得未定义,尽管会话对象存在于数据库中,并且护照和会话详细信息存在于 req 对象中。这是我的会话设置:
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());
这是负责序列化和的代码:
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);
});
});
【问题讨论】:
标签: node.js mongodb session express passport.js