Django远程用户身份验证更改会话ID

2024-09-27 22:29:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过Remote_User(docshere)启用了身份验证,并将RemoteUserBackend子类化为一个我称为MyRemoteUserBackend的类,以允许在用户第一次访问我的站点时设置User属性(例如,设置他们的User对象{},lastnameemail,等等)

问题是,在启用MyRemoteUserBackend的情况下,sessions似乎对用户不起作用,而且数据不会在views之间传递,从而导致视图中断。在

我已经对每个视图的forms进行了彻底的测试,并且可以确认问题不存在于无效表单中。在

当我禁用/comment out MyRemoteUserBackend而改为在SETTINGS内启用RemoteUserBackend中的/comment时,sessions对用户是持久的(session_key对每个用户都持续存在)。当启用MyRemoteUserBackend时,session_key不会持续存在,好像站点认为实际上一个用户实际上是两个独立的用户。在

对用户来说,MyRemoteUserBackend和{}的问题是什么?如果你需要其他信息,请告诉我。谢谢您。在

SETTINGS

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.contrib.auth.middleware.RemoteUserMiddleware',  #<--- required
)


AUTHENTICATION_BACKENDS = [
    'hrops.MyBackends.MyRemoteUserBackend', #<--- sessions don't persist
    'django.contrib.auth.backends.ModelBackend',
    # 'django.contrib.auth.backends.RemoteUserBackend',
]

MyRemoteUserBackend

^{pr2}$

Tags: djangokey用户auth视图settings站点session

热门问题