使用safari时在iframe中设置cookie

问题描述 投票:0回答:1

我知道Stackoverflow和互联网上有很多相关的问题和答案,但是,我无法为我的案例找到解决方案。

我们在域A上有一个我们无法控制的应用程序,以及域B上的应用程序 - 我们的iframe已集成到应用程序A中。我们在应用程序B中使用cookie。一切正常,cookie在请求之间保留,但Safari除外。我读了https://gist.github.com/iansltx/18caf551baaa60b79206,并了解Safari是特殊的,并要求用户过去明确地与域B进行交互。

我们试图通过尝试在站点A上呈现一个不可见的像素来克服这个问题,这个像素采用我们的集成JS脚本,将一个iframe注入到站点A的某个div中。另外,我们尝试向域B发出一个CORS ajax请求到域B(也是从我们的集成脚本),我们使用withCrendetials:true,如果它很重要,并且请求成功返回“set-cookie”标头,但cookie没有传递给iframe对我们域B的进一步请求。

但是,如果我明确地打开域B,突然cookie被传递到我们的iframe集成到域A.

我想我们已经尝试了迄今为止我们想到的所有东西,但没有运气。一些资源建议使用JS重定向,但我认为这是糟糕的用户体验。我希望有更好的解决方案。

任何指针都非常感谢。请保存我的一天,这个问题让我疯狂:)

javascript cookies iframe safari cors
1个回答
0
投票

通过大量研究,我们得出结论,最好摆脱cookie并明确使用Authorization标头。只留下一个问题:我们通过DOM插入的图像,因此我们无法在那里传递Authorization标头(使用查询参数并不理想,因为它会公开auth标记)。我们通过对图像URL执行ajax请求并将它们作为blob插入DOM来解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.