护照很棒。我现在发现它处理会话的方式存在一些问题。
一定是我用错了。
登录+会话+我存储在数据库中的用户数据对我来说一切都很顺利。
然而,我发现当我转移到生产环境(具有多个服务器的 EC2 上的云)时,我每次都会丢失登录会话。
现在我很清楚这一点 - 可能会发生,因为会话对于每个服务器都是唯一的。
所以我的问题是 - 我该如何解决这个问题..
我想我需要在用户的浏览器上存储我自己的cookie?
这是否意味着我根本无法使用express.session?
谢谢,
宜兰
好的,
因此,基本上我正在寻找的(不确定其他人的答案是否相同)是一种在负载平衡实例之间存储会话数据的方法,而无需为每个页面视图进行数据库调用,这对我来说似乎太过分了,因为我只需要让用户保持登录 Google/FB。
看来我正在寻找的答案是 cookie-session 中间件https://github.com/expressjs/cookie-session https://github.com/expressjs/cookie-session
这需要替换使用MemoryStore的默认express.session机制。 BTW MemoryStore 本身在运行时会向您发出警告,表明它不会扩展到单个进程,并且可能会导致内存泄漏。
如果我理解正确的话,就是将会话数据本身序列化到会话 cookie(加密)中,而不是仅仅使用会话 cookie 中的会话 ID。
这对我来说似乎很完美。显然,如果您有大量会话数据,我不希望它起作用,因为 cookie 的大小是有限的。就我而言,我只需要姓名、ID 和头像网址,所以我认为这就足够了。
感谢所有提供帮助的人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)