Cookie会话节点Js Safari问题ID在req.headers.cookie

时间:2018-08-25 10:58:44

标签: session cookies

我遇到了无法在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不确定。

1 个答案:

答案 0 :(得分:0)

这是Safari浏览器的一个已知问题。本质上发生的是,Safari默认情况下会禁用第三方cookie。人们必须去浏览器并启用它,这在企业应用程序中是很明显的,您不能要求您的用户这样做。

使用iframe可以解决此问题,例如-

Safari 3rd party cookie iframe trick no longer working?

但是苹果从那以后也规避了这些。