适用于django 1.6.5的CSRF_COOKIE_SAMESITE等效文件



我正试图在salesforce的webtab iframe中启动我的应用程序,该应用程序是使用django 1.6.5版本编写的。我得到了一个";CSRF cookie未设置";尝试登录时出错。我通过控制台日志了解到,在最新版本的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中不支持添加相同的站点设置,这就是在settings.py中添加这些设置不起作用的原因。Django 3.1是他们开始支持这种设置的地方。我尝试添加我自己的中间件并将设置添加到cookie中,但我得到了一个无效的字段错误。然后我找到了一个可以用来做这个的库-django cookie samesite。我可以将相同的网站设置应用于None,将secure应用于True,然后我可以通过salesforce web选项卡登录。

  1. 在settings.py中添加这些
SESSION_COOKIE_SAMESITE = 'None'
SESSION_COOKIE_SAMESITE_FORCE_ALL = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
  1. 并将其添加到MIDDLEWARE_CLASSES中:
'django_cookies_samesite.middleware.CookiesSameSite',

我从相关网站获得信息:

https://github.com/django/django/pull/8380/files

https://pypi.org/project/django-cookies-samesite/

最新更新