Node.js Passport会话超过2台服务器

Node.js Passport会话超过2台服务器,node.js,passport.js,Node.js,Passport.js,我的web应用程序生产部署在负载平衡器后面的两台服务器上 我正在使用passport(本地策略)和会话进行身份验证 当应用程序在一台服务器上运行时,一切正常,但在生产环境中,一台服务器无法识别另一台服务器建立的cookie/会话(每个请求随机发送到不同的服务器,我无法控制) 因此,当尝试访问需要身份验证的页面时(即使在登录之后),我会重定向到登录页面 我如何让这两台服务器创建它们都能识别的会话cookie(显然,我对express会话中间件使用了相同的秘密) 谢谢 阿隆选项1 将负载平衡器配置为

我的web应用程序生产部署在负载平衡器后面的两台服务器上

我正在使用passport(本地策略)和会话进行身份验证

当应用程序在一台服务器上运行时,一切正常,但在生产环境中,一台服务器无法识别另一台服务器建立的cookie/会话(每个请求随机发送到不同的服务器,我无法控制)

因此,当尝试访问需要身份验证的页面时(即使在登录之后),我会重定向到登录页面

我如何让这两台服务器创建它们都能识别的会话cookie(显然,我对express会话中间件使用了相同的秘密)

谢谢


阿隆

选项1

将负载平衡器配置为始终将同一ip路由到同一台计算机。对于更改网络的用户来说可能会有问题

选项二

使用运行数据库的第三台计算机,并设置express.session(以及任何其他数据库连接)以将该计算机用作存储。提到了如何使用mongoose/mongodb执行此操作


我认为这是更常见的解决方案,但如果您不需要第三台机器,当然会更昂贵

谢谢!选项1对我来说不可能(无法控制负载平衡器)。我使用了选项2-在DB中保存会话。