gpt4 book ai didi

node.js - Node+Passport.js + Sessions + 多台服务器

转载 作者:搜寻专家 更新时间:2023-10-31 23:30:47 25 4
gpt4 key购买 nike

Passport 很棒。我现在发现它处理 session 的方式有些问题。我一定是用错了。

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

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

这是否意味着我根本无法使用 express.session?

谢谢,宜兰

最佳答案

好的,所以基本上我一直在寻找的(不确定对其他人来说答案是否相同)是一种在负载平衡实例之间存储 session 数据而无需为每个页面 View 调用数据库的方法,这对我来说似乎太过分了,因为我只需要让用户保持登录到 Google/FB。

看来我要找的答案是cookie-session中间件 https://github.com/expressjs/cookie-session

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

如果我理解正确的话,这就是将 session 数据本身序列化到 session cookie 中(加密),而不是仅仅使用 session cookie 中的 session ID。这对我来说似乎很完美。显然,如果您有大量 session 数据,我不希望它起作用,因为 cookie 的大小有限。就我而言,我只需要名称、ID 和头像 url,所以我认为这就足够了。感谢所有提供帮助的人。

关于node.js - Node+Passport.js + Sessions + 多台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26026077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com