【发布时间】:2013-07-10 01:46:37
【问题描述】:
我正在使用 node/express 来制作纯后端 api。我的前端(angular.js)托管在单独的服务器上。对于每个允许 CORS 的请求,我都有几行中间件。
如果我使用 -args --disable-web-security 标志启动 chrome,一切正常!
但是,如果我正常启动它,cookie 似乎没有在浏览器中设置,因此节点端的会话没有启动。对于 safari/mobile safari/etc.
我尝试过诸如“接受所有 cookie”/“从不阻止 cookie”之类的浏览器选项。我想也许浏览器不喜欢 localhost,但这在 localhost 和实际托管域上的行为是相同的。
流程是:
我登录并使用 id 设置会话,成功后前端将定向到下一页。这有效,我控制台记录了 req.session.id 并且它是正确的。
在发送请求的下一页上,节点服务器配置为使用会话中的 id 进行此请求。使用 safari/mobile safari/chrome,req.session.id 突然为空。禁用 chrome -security 后,req.session.id 仍然正确且行为正常。
【问题讨论】:
标签: node.js session cookies express session-cookies