第三方cookie - 跨域API和会话追踪

10

假设有一个CORS API需要会话cookie来跟踪用户在结帐过程中的移动,但在多个浏览器中存在问题,其中cookie直到用户访问托管API的站点之后才设置。

例如:

johnny.com使用jacob.com的CORS JSON API。在进行第一次AJAX调用后,jacob.com设置了cookie,但某些浏览器不会为随后的调用设置cookie。因此,API将无法按预期运行。

浏览器行为:

非常感谢您对如何解决这些问题的任何见解。


我现在也面临着完全相同的情况。你找到了适合你需求的解决方案吗? - MarioDS
1
我见过的最好的解决方案是创建大量的iframe,从其他域加载和管理数据。这需要额外的头部修改,以便网站允许来自其他域的iframes。 - jnrcorp
感谢指针。如果 iframe 加载另一个域,cookie 是否仍然有效? - MarioDS
1
是的。我个人从未遇到过iframe内的cookie问题。只要iframe加载,cookie就能正常工作。 - jnrcorp
1个回答

7

很遗憾,似乎没有办法使其在所有浏览器上都起作用。

Safari 现在限制 第三方使用cookie。最好的方法是评估替代方案:

  • 设置一个代理服务器,将调用不同服务的请求重定向(例如,当您点击johnny.com/jacob/abc时,充当代理以检索jacob.com/abc)
  • 在API上使用oauth登录(可能不切实际)
  • 将API移动到johnny.com/api/...

Paypal还创建了几个基于js的解决方案来解决这种问题:https://medium.com/@bluepnume/introducing-paypals-open-source-cross-domain-javascript-suite-95f991b2731d


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接