如何在 django 设置文件中添加相同站点无选项
Posted
技术标签:
【中文标题】如何在 django 设置文件中添加相同站点无选项【英文标题】:How to add samesite none option in django settings file 【发布时间】:2020-12-13 20:32:28 【问题描述】:我使用的是 Django 2.0.2 版本。我试图在 Django 项目中处理谷歌身份验证。我得到了令牌,但我会传递 URL 和令牌。它返回 404 错误。我需要在 Django 设置项目中添加 samesite='none' 。在哪里添加我不知道,我尝试添加很多方法,但仍然抛出 404 错误。如何解决。
Settings.py
MIDDLEWARE = [
'django_cookies_samesite.middleware.CookiesSameSite',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
所以,我添加了 samesite.middleware.CookiesSameSite 中间件。但我仍然面临这个警告与http://stats.XXXX.com/ 的跨站点资源关联的cookie 设置为没有SameSite
属性。它已被阻止,因为 Chrome 现在仅在使用 SameSite=None
和 Secure
设置时才提供带有跨站点请求的 cookie。您可以在 Application>Storage>Cookies 下的开发者工具中查看 cookie 并查看更多详细信息如何修复它
【问题讨论】:
【参考方案1】:按照this的说明进行设置
DCS_SESSION_COOKIE_SAMESITE = 'None'
在 MIDDLEWARE 列表之后的settings.py
您还需要与您的开发服务器建立 ssl 连接或使用一些过时的浏览器,该浏览器允许使用带有 None
属性和不带 secure
属性的 SameSite cookie 策略
【讨论】:
【参考方案2】:也许某些 cookie 还没有该属性。您可以在设置中尝试使用此标志:
SESSION_COOKIE_SAMESITE_FORCE_ALL = True
【讨论】:
以上是关于如何在 django 设置文件中添加相同站点无选项的主要内容,如果未能解决你的问题,请参考以下文章
Django 管理站点:添加用户页面如何工作(编辑更多字段)?