[英]How to set Authorization header using PHP
我正在使用apache
基本身份验证,并设置了REMOTE_USER
标头,我的服务器对其进行了验证以允许其进入。我正在使用apache
反向代理。
ProxyPass /location http://myip:8000/location
ProxyPassReverse /en-US http://myip:8000/location
<Location /location>
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile /home/tomcat/apache/.htpasswd
Require valid-user
RewriteEngine on
RewriteRule .* - [E=RU:%{REMOTE_USER}]
RequestHeader set X-Remote-User %{RU}e
RequestHeader set REMOTE-USER %{REMOTE_USER}s
</Location>
上述解决方案工作正常。 但是我需要对PHP
做同样的事情。 我可以使用与上述身份验证标头相似的标头将php重定向发送到/ location。
我需要使用php进行用户身份验证,身份验证完成后,我想让他使用上述proxypass.
您正在寻找发送WWW-Authenticate
和401
标头的PHP header
函数:
header("HTTP/1.1 401 Unauthorized
header("WWW-Authenticate: Basic realm=<YOUR REALM>");
然后,使用$_SERVER["PHP_AUTH_USER"]
和$_SERVER["PHP_AUTH_PW"]
获取输入的用户名和密码。
放在一起:
<?php
header("HTTP/1.1 401 Unauthorized");
header("WWW-Authenticate: Basic realm=<YOUR REALM>");
if (!($_SERVER["PHP_AUTH_USER"] == $username && $_SERVER["PHP_AUTH_PW"] == $pw))
{
exit("Sorry, you entered the wrong username and password.");
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.