Ionic 3 iframe 中的 Magento 2 设置 cookie SameSite=None 而不是默认的 SameSite=LAX

问题描述

我在 Ionic 框架 iframe 中添加到购物车时遇到问题,按钮只是停留在 Adding... 处,而没有将商品添加到购物车中。

我注意到“网络”选项卡中有一些错误/警告。它说 SameSite cookie 被设置为 LAX,因为它没有被找到。参考下图。

所以我的问题是如何将 SameSite=None 设置为 Magento 2 中的认 cookie?提前致谢。

enter image description here

解决方法

首先,尝试重构您使用的域。如果一切都来自同一个域,则不是“跨站点响应”,不需要此标志。要详细了解为什么禁止跨站点操作,请查看 https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

其次,尝试升级到最新版本(如@Tarun所说),这似乎解决了问题。

,

由于 Chrome 当前的 SameSite 默认值为 None,因此第三方 Cookie 可以跨站点跟踪用户。更新将默认标签更改为 SameSite=Lax。这意味着只有当浏览器的 URL 中的域与 cookie 的域匹配时才会设置 cookie。在这种情况下,我们会处理第一方 Cookie。

对于带有 SameSite=None 标签的 cookie,它们必须具有安全标志。保证它们仅通过通过 HTTPS 发出的请求创建和发送。

不幸的是,某些语言和库尚不支持 None 值。因此,开发人员应直接设置 cookie 标头。查看此 Github repository,了解如何实现 SameSite=None