Node + Passport.js + Sessions +多个服务器

Ila*_*win 3 cloud session multiple-instances node.js passport.js

护照很棒.我现在发现我对如何处理会话有一些问题.我一定是错了.

一切都适用于我登录+会话+用户数据我存储在我的数据库中.但是我发现当我转移到生产环境(具有多个服务器的EC2上的云)时,我每次都会丢失登录会话.这对我来说很清楚 - 可能会发生,因为会话对每个服务器都是唯一的.

所以我的问题是 - 如何解决这个问题...我想我需要在用户的浏览器上存储我自己的cookie?

这是否意味着我根本不能使用express.session?

谢谢,伊兰

Ila*_*win 8

好吧,基本上我正在寻找的东西(不确定它对其他人来说都是相同的答案)是一种在loadbalanced实例之间存储会话数据的方法,而不需要为每个页面视图进行DB调用,这对我来说似乎太过分了,因为我只需要让用户登录Google/FB即可.

似乎我正在寻找的答案是cookie会话中间件 https://github.com/expressjs/cookie-session

这需要替换使用MemoryStore的默认express.session机制.BTW MemoryStore本身在运行时会向您发出警告,它不会扩展到单个进程,也可能导致内存泄漏.

如果我理解正确,将会话数据本身序列化为会话cookie(加密)而不是仅使用会话cookie中的会话ID.这对我来说似乎很完美.显然,如果你有很多会话数据我不希望它工作,因为cookie的大小有限.在我的情况下,我只需要名称,ID和头像网址,所以我认为这就足够了.感谢所有帮助过的人.