我正在尝试像这样实施快递和护照会议:
app.use(connect.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
cookie: {
path: "/",
httpOnly: true,
maxAge: null
},
store: redisStoreConnect,
secret: "something",
key: 'pksy.sid'
}));
app.use(passport.initialize());
app.use(passport.session());
passport.serializeUser (user, done) ->
done null, user.email
return
passport.deserializeUser (email, done) ->
User.findOne
email: email
, (err, user) ->
done err, user
return
return
如果我导航到站点中的页面,则会创建一个新会话并将其存储在 redis 中。如果我刷新该页面,会话似乎会持续存在。如果我导航到新页面,或者即使我关闭选项卡并重新打开到同一页面,也会创建一个新会话。
这尤其令人沮丧,因为护照只验证为我的登录页面生成的会话。如何让我的会话跨页面持续存在?
更新:感谢@robertklep 提醒我检查浏览器实际发回的 cookie(我应该这样做才能开始)。事实证明,浏览器正在发回正确的 cookie,并且身份验证正在工作。会话实际上是持续存在的,但由于某种原因,每个页面请求都会创建一个新会话(浏览器未使用)。我怎样才能阻止这个?