当前位置 : 主页 > 网页制作 > Nodejs >

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

来源:互联网 收集:自由互联 发布时间:2021-06-16
我有鸡和鸡蛋的问题. 我使用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)?这应该可以防止有效的会话固定问题.
网友评论