跳转到主要内容

通过标题识别Django会话

项目描述

Django会话标题:通过标题识别会话

在某些情况下,浏览器可能根本不允许使用任何cookie。在这些情况下,我们希望能够退回到既安全又实用的东西。这个包允许您通过标题手动传递sessionid,这样您就可以继续使用Django出色的会话管理。

它扩展了Django内置的会话,以支持不允许cookie的地方的会话。对于大多数视图,处理将无缝进行。对于那些需要在没有cookie的情况下持续会话的用户,还有一些额外功能。

用法

首先,安装该包。

pip install django-session-header

将您的settings.py中的django.contrib.sessions.middleware.SessionMiddleware替换为以下内容

MIDDLEWARE_CLASSES = [
   # ...
   # 'django.contrib.session.middleware.SessionMiddleware',
   'django_session_header.middleware.SessionMiddleware',
]

并将Django Rest Framework的SessionAuthentication类替换为django_session_header.authentication.SessionAuthentication

REST_FRAMEWORK = {
    'DEFAUlT_AUTHENTICATION_CLASSES': [
        # ...
        # 'rest_framework.authentication.SessionAuthentication',
        'django_session_header.authentication.SessionAuthentication',
    ]
}

如果会话是通过会话标题获得的,那么request.session.csrf_exempt将设置为True。您可以使用此功能有条件地应用CSRF保护。或者,如果您更喜欢,您可以替换Django的正常CSRF中间件为django_session_header.middleware.CsrfViewMiddleware

MIDDLEWARE_CLASSES = [
    # ...
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django_session_header.middleware.CsrfViewMiddleware',
]

sessionid将可在X-SessionID响应标题中找到,您现在可以手动设置请求中的X-SessionID标题,以避免需要cookie来驱动您的会话。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

django-session-header-11-1.0.1.tar.gz (4.5 kB 查看哈希值)

上传时间

构建分发

django_session_header_11-1.0.1-py3-none-any.whl (7.0 kB 查看哈希值)

上传时间 Python 3