- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
全部,
我有一个应该很简单的问题。我正在尝试按照以下说明使用 REMOTE_USER 变量使用 Django 身份验证:https://docs.djangoproject.com/en/1.8/howto/auth-remote-user/ .
然后,为了测试它是否有效,我使用了 postman chrome 扩展。我在那里设置了一个名为“REMOTE-USER”的标题变量,然后是 super 用户的文本,然后我进入了 django 管理页面。我不会自动登录。
我在 RemoteUserMiddleware
类的 process_request 函数中设置了一个断点。当我发出请求时,我看到 request.META["HTTP_REMOTE_USER"]
存在但 request.META["REMOTE_USER"]
不存在。默认的 RemoteUserMiddleware
变量使用 header="REMOTE_USER"
。似乎 HTTP header 变量有一个 HTTP_ 前缀,所以我不明白这是怎么回事。
我觉得我一定遗漏了一些明显的东西。谢谢!
最佳答案
REMOTE_USER
是由您的网络服务器(例如 Apache)设置的环境变量,而不是 HTTP header 。如果它是一个 HTTP header ,那么用户将能够欺骗该 header ,并以他们想要的任何用户身份登录。
所有 http header 都带有前缀 HTTP_
,以便您可以区分它们和环境变量。
您可以使用开发服务器设置环境变量,如下所示。
REMOTE_USER=admin ./manage.py runserver
关于Django REMOTE_USER 不存在但 HTTP_REMOTE_USER 存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32508787/
全部, 我有一个应该很简单的问题。我正在尝试按照以下说明使用 REMOTE_USER 变量使用 Django 身份验证:https://docs.djangoproject.com/en/1.8/ho
我是一名优秀的程序员,十分优秀!