📅  最后修改于: 2023-12-03 14:45:11.699000             🧑  作者: Mango
HTTP 认证是一种基于 HTTP 协议的安全访问机制。在 HTTP 认证中,服务器会要求客户端在访问需要认证的资源之前提供用户名和密码等凭证,只有凭证正确的客户端才能访问被保护的资源。
PHP 提供了一些自带的函数和方法来实现 HTTP 认证,其中包括 $_SERVER['PHP_AUTH_USER']
、$_SERVER['PHP_AUTH_PW']
、header()
和 http_response_code()
等。
以下是一个简单的示例:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo '此资源需要验证,请输入用户名和密码。';
exit;
} else {
if ($_SERVER['PHP_AUTH_USER'] != 'myuser' || $_SERVER['PHP_AUTH_PW'] != 'mypassword') {
header('HTTP/1.0 401 Unauthorized');
echo '用户名或密码不正确。';
exit;
} else {
echo '验证通过!';
}
}
?>
在上述示例中,首先检测是否存在 $_SERVER['PHP_AUTH_USER']
,如果不存在则通过 header()
函数发送 WWW-Authenticate
响应头,提示客户端输入验证信息。如果客户端输入的验证信息不正确,则返回 401 Unauthorized
响应码和提示信息。
如果客户端输入的验证信息正确,则返回 验证通过!
提示信息。