未在 Chrome 上设置第三方 cookie(Django 应用程序)
Third party cookies not set on Chrome (Django App)
我在 Chrome 上访问某些 third-party cookie 时遇到问题。
Chrome 版本是 80.0.3987.100 (Official Build) (64-bit)
,我想这已经将 SameSite cookie 的新实现设置为 Lax。
但是,我在 Django 设置中添加了以下内容:
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_SAMESITE = None
CSRF_COOKIE_SAMESITE = None
运气不好。
可以看到上面的请求header中没有Cookies
我已经尝试过在 Postman 上从 Chrome 执行时遇到问题的请求。在我通过 Cookie: sessionid: <some_id>
之前,我得到了完全相同的结果。可能值得一提的是,这一切在 Firefox 上都没有问题(我可以在请求中看到正确设置的 Cookie Headers)。
如果有人有任何想法,我们将不胜感激。
确定找到解决方案!
根据 this PR 上的对话,我决定采用以下解决方法:
- 创建 following middleware
- 在
django.contrib.sessions.middleware.SessionMiddleware
之前添加中间件
- 仍然保留这些设置。
=>
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_SAMESITE = None
CSRF_COOKIE_SAMESITE = None
上面的 PR 已经合并到 master 中,将在 2020 年 8 月的某个时间发布。在那之前,这是最好的解决方法。
我在 Chrome 上访问某些 third-party cookie 时遇到问题。
Chrome 版本是 80.0.3987.100 (Official Build) (64-bit)
,我想这已经将 SameSite cookie 的新实现设置为 Lax。
但是,我在 Django 设置中添加了以下内容:
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_SAMESITE = None
CSRF_COOKIE_SAMESITE = None
运气不好。
可以看到上面的请求header中没有Cookies
我已经尝试过在 Postman 上从 Chrome 执行时遇到问题的请求。在我通过 Cookie: sessionid: <some_id>
之前,我得到了完全相同的结果。可能值得一提的是,这一切在 Firefox 上都没有问题(我可以在请求中看到正确设置的 Cookie Headers)。
如果有人有任何想法,我们将不胜感激。
确定找到解决方案!
根据 this PR 上的对话,我决定采用以下解决方法:
- 创建 following middleware
- 在
django.contrib.sessions.middleware.SessionMiddleware
之前添加中间件
- 仍然保留这些设置。
=>
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_SAMESITE = None
CSRF_COOKIE_SAMESITE = None
上面的 PR 已经合并到 master 中,将在 2020 年 8 月的某个时间发布。在那之前,这是最好的解决方法。