同一台服务器上的两个 NodeJs 应用程序可以使用相同的 cookie 加密密钥共享 cookies 吗?

Can two NodeJs apps on the same server and with the same cookie encryption keys share cookies?

我在一个应用程序套件中有两个 Web 应用程序,两个 运行 NodeJs 在同一台服务器上。我希望用户登录一个并自动登录另一个。我知道我可以发送包含所有必要数据的 GET 请求,但我更愿意自动同步 cookie。如果我使用 express-session 在两个应用程序上为 cookies 提供相同的密钥,它们可以共享 cookies 吗?如果没有,将 cookie 从一个站点传输到另一个站点的最佳和最安全的方法是什么?

来自浏览器的 Cookie 与域相关联,而不是与端口相关联。因此,同一域中的多个服务器,但不同的端口将自动从浏览器接收相同的 cookie,只要 cookie 不限于特定路径,您无需执行任何操作。

如果需要,您还可以将 cookie 配置为与子域共享,这样即使子域上的不同主机也可以共享 cookie。

I want a user to log into one and be automatically signed in on the other.

两台服务器都会看到相同的 cookie,因此如果您的登录机制在另一台服务器中识别出来自一台服务器的 cookie,那么它应该都能正常工作。

If I use express-session to give cookies the same secret key on both apps, can they share cookies?

两个单独的 node.js 应用程序将有两个单独的 express-session 实例。您必须将会话数据存储在公共的共享数据库中,以便两个单独的服务器能够访问相同的会话数据。