我通过Remote_User
(docshere)启用了身份验证,并将RemoteUserBackend
子类化为一个我称为MyRemoteUserBackend
的类,以允许在用户第一次访问我的站点时设置User
属性(例如,设置他们的User
对象{lastname
,email
,等等)
问题是,在启用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
:
目前没有回答
相关问题 更多 >
编程相关推荐