如何在PHP中创建用户身份验证,就像我们尝试登录路由器时一样。
当我输入例如 www.example.com/portal 的网址时,应该会出现像上面图片中询问用户名和密码的提示。
这是什么类型的身份验证?如何在PHP中编写代码实现?
注意:我有完全控制所运行的服务器。所以是否需要安装特殊模块,我可以自己操作。
如何在PHP中创建用户身份验证,就像我们尝试登录路由器时一样。
当我输入例如 www.example.com/portal 的网址时,应该会出现像上面图片中询问用户名和密码的提示。
这是什么类型的身份验证?如何在PHP中编写代码实现?
注意:我有完全控制所运行的服务器。所以是否需要安装特殊模块,我可以自己操作。
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
http://php.net/manual/en/features.http-auth.php
基本上,您需要发送正确的状态代码为401未经授权的头文件。浏览器会看到此信息以及您的WWW-Authenticate
头文件,并提示用户输入凭据。完成后,您就可以在$_SERVER['PHP_AUTH_USER']
和$_SERVER['PHP_AUTH_PW']
中看到用户名和密码。这是基本的HTTP身份验证。您可以在php.net页面上找到教程:http://www.php.net/manual/zh/features.http-auth.php
它基本上是一个HTTP头,您必须将其发送到浏览器。 HTTP服务器(apache/nginx)随后将用户数据转发给PHP,就像任何其他$ _SERVER参数一样。