Django - 使用REMOTE_USER进行身份验证 - 如何在开发服务器中进行测试?

时间:2013-03-21 17:20:00

标签: python django debugging authentication

我想使用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'变体。谢谢!

3 个答案:

答案 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