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

时间:2015-07-15 20:28:58

标签: node.js firefox session-cookies

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

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

有没有办法解决这个问题?

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

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以将会话存储在数据库中,这就是connect-mongo所做的事情。我相信你也可以为风帆找到类似的东西。

答案 1 :(得分:0)

问题是Sails默认为每个应用程序使用相同的cookie名称/密钥(' sails.sid')。访问不同的Sails应用程序使浏览器覆盖相同的会话cookie,从而导致描述的条件。

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

config/session.js中,添加key属性并将其设置为特定于应用的内容,以避免使用sails.sid