Node.js/Connect使用现有的Connect.SID

dth*_*ree 3 cookies http-proxy node.js connect.js

我有鸡和鸡蛋的问题.

我使用Node.js HTTPServer将Web请求路由到不同的Node.js工作者,具体取决于它们在请求标头中发送的Connect.SID cookie.

我的每个Node.js工作者都使用Connect/Express,并在第一次连接请求时分配Connect.SID cookie.

问题

显然,如果请求具有未向该节点实例注册的Connect.SID,则Connect会分配新ID.

所以,我有一个新的Connect.SID.我的HTTP代理记录ID 12345并将其路由到工作人员#5.Worker#5将新的ID 56344发送回浏览器.下一个浏览器请求 - HTTP代理看到一个全新的ID - 56344 - 记录它并发送给Worker#6.工人#6看到新的SID和....

Connect Session中间件太......简单......

app.use(express.cookieParser());
app.use(express.session({ secret: "niceTry", cookie: { /* ... */ } }));
Run Code Online (Sandbox Code Playgroud)

有没有办法将逻辑注入到新的会话ID的分配中,如果已经有未注册但有效的Connect.SID,它会跳过它?

小智 5

您是否考虑过使用Node/Express进行分布式会话管理(即Redis)?这应该可以防止有效的会话固定问题.