我遇到了无法在Safari中获取sessionID的问题。在localhost和https调用中,我无法再获取会话ID。
我在server.js
中使用的以下代码。在Chrome和Firefox中,它工作正常。问题仅在Safari中。我正在使用节点的cookie会话包。
请帮忙。
Boot.App.use(session({name: 'checkSession',keys: new Keygrip(['app-key-1'], 'SHA384', 'base64'),secure: false,httpOnly: true,domain: doc.Domain.ENV,maxAge: 31536000000}));
这就是我创建会话的方式
Boot.App.get('/set', function(req, res){req.session={checkSession:"user"};res.end(JSON.stringify("sessionSet"));});
但是在进一步的通话中,我正在尝试req.headers.cookie会话ID不确定。
答案 0 :(得分:0)
这是Safari浏览器的一个已知问题。本质上发生的是,Safari默认情况下会禁用第三方cookie。人们必须去浏览器并启用它,这在企业应用程序中是很明显的,您不能要求您的用户这样做。
使用iframe可以解决此问题,例如-
Safari 3rd party cookie iframe trick no longer working?
但是苹果从那以后也规避了这些。