CSRF_COOKIE_SAMESITE 相当于 django 1.6.5
CSRF_COOKIE_SAMESITE equivalent for django 1.6.5
我正在尝试在 salesforce webtab iframe 中启动使用 django 1.6.5 版本编写的应用程序。我在尝试登录时遇到“CSRF cookie not set”错误。我通过控制台日志了解到,在最新版本的 Chrome 中,只允许使用 'secure'=True 和 samesite=None 设置的 cookie。我了解到这些设置可以添加到更高版本的 django
中的 settings.py
SESSION_COOKIE_SAMESITE = 'None'
CSRF_COOKIE_SAMESITE = 'None'
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
但这在django 1.6.5 版本中不起作用。我一直在尝试找出如何在我的版本中应用这些设置。
在 Django 1.6.5 中不支持添加 samesite 设置,这就是在 settings.py 中添加这些设置无效的原因。 Django 3.1 是他们开始支持此设置的地方。我尝试添加自己的中间件并将设置添加到 cookie 中,但出现了无效字段错误。然后我找到了一个可以用于此目的的库 - django-cookies-samesite。我能够将 samesite 设置应用到 None 并将安全应用到 True,然后我能够通过 salesforce web 选项卡登录。
- 将这些添加到 settings.py
SESSION_COOKIE_SAMESITE = 'None'
SESSION_COOKIE_SAMESITE_FORCE_ALL = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
- 并在 MIDDLEWARE_CLASSES 中添加:
'django_cookies_samesite.middleware.CookiesSameSite',
我从中获取信息的相关网站:
我正在尝试在 salesforce webtab iframe 中启动使用 django 1.6.5 版本编写的应用程序。我在尝试登录时遇到“CSRF cookie not set”错误。我通过控制台日志了解到,在最新版本的 Chrome 中,只允许使用 'secure'=True 和 samesite=None 设置的 cookie。我了解到这些设置可以添加到更高版本的 django
中的 settings.pySESSION_COOKIE_SAMESITE = 'None'
CSRF_COOKIE_SAMESITE = 'None'
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
但这在django 1.6.5 版本中不起作用。我一直在尝试找出如何在我的版本中应用这些设置。
在 Django 1.6.5 中不支持添加 samesite 设置,这就是在 settings.py 中添加这些设置无效的原因。 Django 3.1 是他们开始支持此设置的地方。我尝试添加自己的中间件并将设置添加到 cookie 中,但出现了无效字段错误。然后我找到了一个可以用于此目的的库 - django-cookies-samesite。我能够将 samesite 设置应用到 None 并将安全应用到 True,然后我能够通过 salesforce web 选项卡登录。
- 将这些添加到 settings.py
SESSION_COOKIE_SAMESITE = 'None'
SESSION_COOKIE_SAMESITE_FORCE_ALL = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
- 并在 MIDDLEWARE_CLASSES 中添加:
'django_cookies_samesite.middleware.CookiesSameSite',
我从中获取信息的相关网站: