我想使用django.contrib.auth.middleware.RemoteUserMiddleware进行身份验证,如下所示:
https://docs.djangoproject.com/en/dev/howto/auth-remote-user/
问题是,如何在没有Apache的开发环境中测试?即我可以在本地设置中以某种方式设置REMOTE_USER吗?
编辑(添加设置)
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.RemoteUserBackend',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.RemoteUserMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
...
)
然后我在local_Settings中有这个:
os.environ['REMOTE_USER'] = "mmatyas"
我也尝试了'HTTP_REMOTE_USER'变体。谢谢!
答案 0 :(得分:1)
在开发环境中,您可以在用于启动开发服务器的同一命令提示符中设置环境变量。
如果在Unixy计算机上,则为export REMOTE_USER="duncan"
。
您也可以通过修改manage.py并设置os.environ['REMOTE_USER'] = "duncan"
答案 1 :(得分:1)
您可以编写一些WSGI中间件并将其设置在那里,然后确保wsgi中间件将您的django应用程序包装在wsgi堆栈中。关于编写wsgi中间件的大量教程,它将是一个简短的一页代码。易peasy柠檬,squeezy!
答案 2 :(得分:0)
必须在启动开发服务器的环境中设置变量。通常它只是:
REMOTE_USER=myuser ./manage.py runserver