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

9 投票
3 回答
7047 浏览
提问于 2025-04-17 19:54

我想使用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 个回答

-1

在你的开发环境中,你可以在启动开发服务器的命令提示符里设置一个环境变量。

比如在类Unix系统上,你可以输入 export REMOTE_USER="duncan" 来设置。

另外,你也可以通过编辑你的 manage.py 文件来设置这个变量,方法是加上 os.environ['REMOTE_USER'] = "duncan"

0

你可以写一些 WSGI 中间件,然后把它设置好,确保这个中间件能够把你的 Django 应用包裹在 WSGI 的结构里。网上有很多关于如何写 WSGI 中间件的教程,通常只需要一页代码就能搞定。简单得很!

1

这个变量需要在你启动开发服务器的环境中设置。通常只需要这样做:

REMOTE_USER=myuser ./manage.py runserver

撰写回答