跳转到主要内容

通过标题识别Django会话

项目描述

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

在某些情况下,浏览器可能不允许使用任何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',
]

会话ID将在响应头中的X-SessionID下可用,现在您可以在请求中手动设置X-SessionID头,以避免需要cookies来支持会话。

项目详情


下载文件

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

源分布

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

上传时间

构建分布

django_session_header-1.0-py3-none-any.whl (13.1 kB 查看哈希值)

上传时间 Python 3

由以下支持