localStorage 在 iFrame 中不可见

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

当我们在单独的选项卡中将一些数据设置到 localStorage 时,会遇到一个偶发性问题,然后当我们在另一个域下的 iFrame 中的同一浏览器中加载相同的域时,我们看不到这些数据。该问题仅发生在某些特定用户身上,我们无法在本地重现它。

大多数遇到此问题的用户都使用 Windows 操作系统。我们使用的工作流程是下一个。

  1. 打开一个带有项目域的新选项卡,例如 internal.com
  2. 登录用户并将访问令牌存储到localStorage
  3. 打开客户的项目域,例如 external.com
  4. 确保启用第 3 方 cookie
  5. external.com 下添加一个 iFrame,其中包含 internal.com 地址
  6. 验证 internal.com 的内容是否按预期加载到 iFrame

预期的结果是什么?

external.com 选项卡下带有 internal.com 地址的 iFramelocalStorage 中,我们应该看到我们在浏览器选项卡中设置的带有 internal.com 地址的数据

会发生什么?

external.com选项卡下具有internal.com地址的iFramelocalStorage为空。

我们大约从八月初开始收到这样的问题。 有人遇到过同样的情况或者知道原因吗

我们已经检查了所有可能的浏览器设置,包括第 3 方 cookie 和 CORS 策略。


以下是一些跟进该问题的官方资源:

  • https://bugs.chromium.org/p/chromium/issues/detail?id=1482192#c9
  • https://groups.google.com/a/chromium.org/g/blink-dev/c/24hK6DKJnqY/m/ChL2WWx5CgAJ
  • https://bugs.chromium.org/p/chromium/issues/detail?id=1476059
google-chrome iframe local-storage third-party-cookies
1个回答
3
投票
我整天都在为此奋斗。

https://developer.chrome.com/en/docs/privacy-sandbox/storage-partitioning/

就是这个原因。新的 Chrome 实验功能。只需禁用它即可。

chrome://flags/#third-party-storage-partitioning。

另请检查您的浏览器第三方 cookie 权限。这也应该被允许。

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