【发布时间】:2011-07-13 00:45:02
【问题描述】:
我正在使用 Node.js 服务器,并且正在使用 Connect 框架进行开发。我试图在给定的时间间隔后重新生成 SID 以避免会话固定。有一个名为 req.session.regenerate 的方法,根据文档,它应该做到这一点。
« 简单地重新生成会话 调用方法,一旦完成 新的 SID 和会话实例将是 在 req.session 初始化 »
示例代码:
req.session.regenerate(function(err){
// will have a new session here
});
调用上述方法后,查看req.sessionID的值,发现和之前的值一样。
如果我尝试从 req.session.regenerate 中获取 sessionID 并将其写入终端,我会得到一个新的 SID,这更令人困惑 ~ IE 为什么你希望 SID 仅在回调范围内生成?如果我将值分配给全局变量,它的值是未定义的。
我觉得我忽略了一些非常明显的事情。
感谢任何帮助。
【问题讨论】:
-
您在哪里/何时查看
req.sessionID?也许您正在检查的代码实际上是在 regenerate 函数运行之前进行检查。 -
我已经检查了几个地方。重新生成之前、内部和之后以比较值。我使用 console.log 将 req.session.id 的值发送到终端。它们之间没有区别。
-
你解决了吗?我遇到了另一个稍微不同的问题:stackoverflow.com/questions/5646905/…
标签: javascript node.js connect sessionid