Django 浏览器阻止跨域iframe Cookie

Django 浏览器阻止跨域iframe Cookie,django,cookies,iframe,django-allauth,Django,Cookies,Iframe,Django Allauth,我有一个类似论坛的组件,我在其他网站的iframe中使用它。该组件使用django allauth与Facebook和Twitter进行身份验证。一切正常,但现在身份验证已在一段时间前停止工作。当我在浏览器中查看Cookie时,iframe设置的来自Facebook/Twitter的Cookie不会加载。但是,组件本身的cookie已设置。 当我在组件本身的另一个子域上的网站上加载iframe时,身份验证仍然有效 另一子域上的工具(工作): 完全不同域上的工具(不工作): 我猜这个问题与CO

我有一个类似论坛的组件,我在其他网站的iframe中使用它。该组件使用django allauth与Facebook和Twitter进行身份验证。一切正常,但现在身份验证已在一段时间前停止工作。当我在浏览器中查看Cookie时,iframe设置的来自Facebook/Twitter的Cookie不会加载。但是,组件本身的cookie已设置。 当我在组件本身的另一个子域上的网站上加载iframe时,身份验证仍然有效

另一子域上的工具(工作):

完全不同域上的工具(不工作):


我猜这个问题与CORS头有关,但我尝试过的都没有帮助。有人能帮我解决这个问题吗?

如果这只是最近才停止工作,它可能与Chrome的最新版本有关,如果cookie的属性SameSite没有明确设置,它默认为SameSite=Lax,这会阻止跨站点请求中的浏览器发送cookie

我查了你的-有很多饼干都是空的


可能还有几个原因,为什么浏览器忽略了请求中的cookie,而我试图在我的博客中对所有cookie进行汇总

非常感谢!这确实是问题所在。对于其他Django用户,您必须将Django版本更新到至少3.1,并在settings.py文件集中设置
CSRF\u COOKIE\u SAMESITE='None'
CSRF\u COOKIE\u SECURE=True
CSRF\u COOKIE\u HTTPONLY=True
会话\u COOKIE\u SAMESITE='None'
会话\u COOKIE\u SECURE=True会话\u COOKIE\u HTTPONLY=True