如何使用PHP

时间:2015-06-05 13:04:02

标签: php apache basic-authentication reverse-proxy mod-proxy

我正在使用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.

1 个答案:

答案 0 :(得分:0)

您正在寻找PHP header函数来发送WWW-Authenticate401标题:

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.");
    }
?>
相关问题