如何在Safari中允许第三方cookie或创建变通方法?

时间:2017-02-09 21:10:54

标签: javascript safari cross-domain session-cookies

我正在尝试找到一种在我的两个网站之间共享会话cookie的方法。我不确定这是否是最好的方法,或者我是否应该将这些网站放在同一个域上或切换到不同的方法。

我有两个网站: adminCRM.com customerSite.com 。管理站点基于1.5 Mean骨架,使用oauth和passport生成会话cookie,以保持用户登录。用户被授予管理员和/或客户角色。 customerSite.com有一个iframe,它在adminCRM.com上调用登录api。然后,customerSite从adminCRM的响应头中获取会话cookie。

在大多数情况下,此会话cookie方法似乎已足够。 问题是这种方法不适用于safari和其他默认拒绝第三方cookie的浏览器。

我研究过变通方法并且尚未找到当前可行的解决方案。但是,我对这一切都很陌生,我觉得我可能会以错误的方式解决这个问题。

是否有解决方法在Safari上设置第三方Cookie?我应该放弃第三方cookie并切换到不同的方法吗?任何帮助深表感谢。

2 个答案:

答案 0 :(得分:0)

更新:消除了第三方Cookie Safari问题。保持域名分离。

我无法找到允许第三方Cookie的方法,但无论如何这本来都是hackish。

我最终仍然保持域名分离,只是从会话cookie切换到JWT。我使用了mleanos meanstack功能: https://github.com/mleanos/mean/tree/feature/JWT-Auth-Lib

答案 1 :(得分:0)

通过将其中一个站点作为另一个站点的子域,我认为浏览器不再将其视为第三方。例如。 adminCRM.customerSite.com