这个问题大约在2023年8月中旬开始发生,而且只针对我们的一些用户。我有一个使用Cognito认证的应用程序。在浏览器中打开时,整个登录过程完全正常。在iframe中嵌入该站点时,Cognito auth令牌丢失。我可以在一个单独的标签中并排打开iframe和站点,标签中有Cognito令牌,iframe没有(通过检查localstorage找到)。我在Chrome更新说明中找不到任何会影响此功能的内容。
我们已尝试重新安装和更新Chrome。我们已尝试清除所有浏览器数据。我们已经通过更改日志来查找可能导致此问题的任何更新。我们已经降低了所有的安全设置。
1条答案
按热度按时间dauxcl2d1#
您的问题可能与Chrome在上一个稳定版本中引入的localStorage分区有关,请查看此链接:https://developer.chrome.com/docs/privacy-sandbox/storage-partitioning/ siteA的localStorage不再与iframe嵌入siteA中的localStorage相同。如果您使用的是Chrome扩展,您可以尝试在清单中添加host_permissions。(https://developer.chrome.com/docs/extensions/mv3/storage-and-cookies/#storage-partitioning)
解决方案
我通过修改amplify配置并在配置中添加cookieStorage设置,成功地使我的Cognito身份验证在iframe中工作,如下所示:
});
关于
partitioned: false
的部分告诉amplify不要使用Chrome最新稳定版中添加的分区机制,默认情况下会激活。(partitioning in localStorage)