All,
我有一个应该是一个非常简单的问题。我正在尝试按照以下说明使用 REMOTE_USER 变量来使用 Django 身份验证:https://docs.djangoproject.com/en/1.8/howto/auth-remote-user/ https://docs.djangoproject.com/en/1.8/howto/auth-remote-user/.
然后,为了测试这是否有效,我使用了 postman chrome 扩展。在那里,我设置了一个名为“REMOTE-USER”的标头变量,然后设置了超级用户的文本,然后我进入了 django 管理页面。我不会自动登录。
我在process_request函数中设置了一个断点RemoteUserMiddleware
班级。当我提出请求时,我看到request.META["HTTP_REMOTE_USER"]
存在但是request.META["REMOTE_USER"]
不存在。默认RemoteUserMiddleware
可变用途header="REMOTE_USER"
。 HTTP 标头变量似乎有一个 HTTP_ 前缀,所以我不明白这是如何工作的。
我觉得我一定错过了一些明显的东西。谢谢!
The REMOTE_USER
是由您的 Web 服务器(例如 Apache)设置的环境变量,而不是 HTTP 标头。如果它是 HTTP 标头,那么用户将能够欺骗该标头,并以他们想要的任何用户身份登录。
所有 http 标头均带有前缀HTTP_
以便您可以区分它们和环境变量。
您可以使用开发服务器设置环境变量,如下所示。
REMOTE_USER=admin ./manage.py runserver
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)