python - Django 获取 Apache 用户

标签 python django

Django 1.6、Python 3.3

我只想获取经过 Apache 身份验证的用户并将其保存为变量。有没有 django-y 的方法来做到这一点?直接用Python 怎么样?

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

谢谢。

最佳答案

Apache 的身份验证设置可在 Django View 中访问的 REMOTE_USER 环境变量。

具体来说,根据docs ,

... in Django, REMOTE_USER is made available in the request.META attribute.

但是,您需要设置 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'] 对用户进行身份验证并自动登录。

关于python - Django 获取 Apache 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25332433/

相关文章:

用于验证 JSON 模式的 Python 工具/库

python - Celery中的task_reject_on_worker_lost和task_acks_late有什么不同

python - 在 pyqt5 上每次点击时使按钮标签发生变化

python - 将字符串值转换为 numpy 数组

mysql - 将一个查询集左连接到另一个查询集

python - 使用 python headless 浏览器通过 https 查询下载文件

python - Django "for"循环和python字典问题

Django:从存储中删除重复的消息

python - 如果我的资源更新方法还创建了不同类型的资源,它是否是线程安全的?

python - 如何在django中执行内部连接