如何在Django设置文件中添加samesite none选项

时间:2020-08-25 07:26:12

标签: django django-models django-rest-framework django-views django-templates

我使用了Django 2.0.2版本。我试图在Django项目中处理Google身份验证。我获得了令牌,但是我将传递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=NoneSecure的情况下才提供cookie。您可以在Application> Storage> Cookies下的开发人员工具中查看Cookie,并查看更多详细信息如何修复

2 个答案:

答案 0 :(得分:0)

按照this的说明进行操作并设置

DCS_SESSION_COOKIE_SAMESITE = 'None' 

在MIDDLEWARE列表之后的settings.py

此外,您还需要建立与开发服务器的ssl连接或使用一些过时的浏览器,以允许使用具有None属性和不具有属性secure的SameSite cookie策略

答案 1 :(得分:0)

也许有些 cookie 还没有这个属性。您可以在设置中尝试使用此标志:

SESSION_COOKIE_SAMESITE_FORCE_ALL = True