防止在 运行 多个 nodejs 服务器时丢失会话

Prevent losing session while running multiple nodejs servers

我在同一台机器上(本地)有两个 sailsjs 应用程序 运行ning,第一个为第二个提供 REST 端点。我使用同一个浏览器与这两个应用程序进行交互。不同端口上的应用 运行。

问题是,每次我从浏览器访问一个应用程序时,另一个应用程序的会话都会丢失,每次我使用浏览器测试 REST 端点时都需要登录。我尝试为两个应用程序设置相同的会话密码作为一个疯狂的猜测,但它没有用。

有办法解决这个问题吗?

我正在使用 Firefox,应用程序托管在 localhost:9999 和 localhost:1337 上。

提前致谢。

您可以将 session 存储在数据库中,例如 connect-mongo 就是这样做的。我相信你也能找到类似的帆船。

问题是 Sails 默认为每个应用程序使用相同的 cookie name/key ('sails.sid')。访问不同的 Sails 应用程序会使浏览器覆盖相同的会话 cookie,从而导致所描述的情况。

为每个应用程序更改密钥解决了问题。

config/session.js 中,包含一个 key 属性并将其设置为特定于应用程序的内容以避免使用 sails.sid.