Django抓住Apache用户

时间:2014-08-15 18:53:37

标签: python django

Django 1.6,Python 3.3

我只想获取Apache认证的用户并将其保存为变量。是否有django-y方式来做到这一点?那么直接在Python中呢?

如果有帮助我计划将该值用作模型字段的默认值 - 但我也想在我的代码中的其他位置使用它。

感谢。

1 个答案:

答案 0 :(得分:2)

Apache的auth设置可在Django视图中访问的REMOTE_USER环境变量。

具体而言,根据docs

  

...在Django中,REMOTE_USER在request.META属性中可用。

然而,你需要设置MiddleWare以便Django知道抓住REMOTE_USER source):

MIDDLEWARE_CLASSES = (
    '...',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.RemoteUserMiddleware',
    '...',
)

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.RemoteUserBackend',
)

之后,您可以使用request.META['REMOTE_USER']进行身份验证并自动登录用户。