我对会话有点陌生,现在当我尝试使用它们时,会话总是未定义的,例如在成功登录后进入下一页时。
如果登录成功,我将执行以下操作:
var session = req.session;
session.user_id = String(item._id);
session.user_secure = security.security(session.user_id);
然后我重定向到另一个页面:
res.writeHead(302, {
'Location': '/backstageArea'
});
res.end();
然后我尝试再次找到会话,这样做:
var session = req.session;
console.log("uid: " + String(session.user_id));
console.log("hid: " + session.user_secure);
这导致会话未定义。
这是我在我的app.configure中的最后三件事:
app.use(express.cookieParser());
app.use(express.session({secret: 'secret', store: store, key: 'sid', cookie:{secure:true}}));
app.use(app.router);
可能是因为我重定向到一个新的页面,我失去了会话?还是我做错了什么?
2条答案
按热度按时间d5vmydt91#
通过使用
cookie:{secure:true}
,您可以告诉express应用程序和浏览器仅通过https发送该cookie。因此,如果您不使用
https
,则可以删除secure: true
安全cookie是保护敏感cookie免受中间人攻击的有用功能,当您在同一个域上使用
http
和https
时,它们更加有用。如果你想通过
nginx
或apache
使用https,你可能需要:k3fezbri2#
编辑为