繁体   English   中英

如何使用PHP设置授权标头

[英]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-Authenticate401标头的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM