仅在禁用Web安全的情况下设置Cookie? (Node.js / Express.js应用程序)

时间:2013-07-11 16:59:56

标签: node.js session cookies express session-cookies

我正在使用node / express来制作纯后端api。我的前端(angular.js)托管在一个单独的服务器上。对于允许CORS的每个请求,我都有几行中间件。

如果我使用-args --disable-web-security标志启动chrome,一切都很有效!

但是,如果我正常启动,cookie似乎没有在浏览器中设置,因此节点端的会话没有开始。这对于safari / mobile safari /等是相同的。

我尝试过浏览器选项,例如“接受所有Cookie”/“永不阻止Cookie”。我想也许浏览器不喜欢localhost,但这在localhost和实际托管域上是相同的行为。

流程是:

  1. 我登录并且会话设置为id,成功时前端指向下一页。这工作,我控制台记录req.session.id,这是正确的。

  2. 在下一页上发送请求,节点服务器配置为在会话中使用此请求的id。随着safari / mobile safari / chrome,req.session.id突然变空。在禁用chrome -security的情况下,req.session.id仍然是正确的,并且表现得像它应该的那样。

1 个答案:

答案 0 :(得分:1)

请参阅此答案,其中包含跨域Cookie和会话:Using Express and Node, how to maintain a Session across subdomains/hostheaders