快速服务器中的请求对象不会持久化

时间:2016-10-21 14:07:23

标签: passport.js

我正在使用passportjs(google / facebook策略)登录。我观察到的是,通过社交渠道(使用序列化用户)登录后,req.session(来自快递会话)使用'passport.user'键更新。这很好。

我所期望的是,如果发出下一个http请求,那么req.session仍会包含passport.user密钥,但这不会发生。所以我不得不通过mongo-connect将会话存储在mongodb中。现在在mongo商店,我有会话信息。

这是正常行为吗?那个req对象不会在两个http请求之间持续存在于同一个Express服务器实例中?因此,每次必须进行新请求时,都必须从mongo商店检索会话。

这引出了一个问题,如果req.session的上述行为是真的,为什么我们需要deserializeUser?

1 个答案:

答案 0 :(得分:0)

您是否设置了应用以使用Passport的会话中间件?

// Configuring Passport
var passport = require('passport');
var expressSession = require('express-session');

app.use(session({ secret: 'secret'}));
app.use(passport.initialize());
app.use(passport.session());

我正在构建一个Web应用程序并使用护照本地策略。成功通过身份验证后,用户信息将添加到会话中并保留到会话中(直到从会话中删除)。