我有鸡和鸡蛋的问题. 我使用Node.js HTTPServer将Web请求路由到不同的Node.js工作者,具体取决于它们在请求标头中发送的Connect.SID cookie. 我的每个Node.js工作者都使用Connect / Express,并在第一次连
我使用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: { /* ... */ } }));
有没有办法将逻辑注入到新的会话ID的分配中,如果已经有未注册但有效的Connect.SID,它会跳过它?
您是否考虑过使用Node / Express进行分布式会话管理(即Redis)?这应该可以防止有效的会话固定问题.