微服务架构中的跨域共享状态

时间:2018-07-25 12:50:26

标签: cross-browser cross-domain microservices cross-domain-policy

目前,有一个致力于微服务架构的项目。在前端之间,您需要转移一些状态并保存状态,而无需重新启动主页并在不同域之间重定向。

例如::当您首次访问站点domain1.com时,将显示一个弹出窗口,在页面上确认使用cookie。当用户同意条件时,cookie将存储在共享的domain3.com资源上。当访问站点domain2.com时,不应出现此弹出窗口,因为用户已经在domain1.com上同意了这些条款。看起来像这样:

示例方案:
Example scheme

决定使用 iFrame 在其他域上保存Cookie。在测试中发现,给定的方法不适用于Safari浏览器以及IE,Firefox浏览器的隐身模式。这样,它在chrome中效果很好。

我们知道Safari安全策略禁止页面通过iFrame保存cookie,直到用户不会亲自访问保存cookie的页面为止,这可以通过调用window.popup来部分解决,但是该解决方案看起来过于有毒,而且在Safari 11.2版本中现在无法正常工作。另外,我们尝试将数据保存在 localStorage 中,但是如果cookie是通过 iFrame 保存的,则与 localStorage 相同的操作不会工作了。

带有代码的示例在github中表示。

提前感谢您的回答。

0 个答案:

没有答案