實現基本的簡單Basic Auth認證。
可以用 header() 函數來向客戶端瀏覽器發送“Authentication Required”信息,使其彈出一個用戶名/密碼輸入窗口。當用戶輸入用戶名和密碼後,包含有 URL 的 PHP 腳本將會加上預定義變量 PHP_AUTH_USER,PHP_AUTH_PW 和 AUTH_TYPE 被再次調用,這三個變量分別被設定爲用戶名,密碼和認證類型。預定義變量保存在 $_SERVER 數組中。
public function __construct() {
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="Zello"');
header('HTTP/1.0 401 Unauthorized');
echo '您必須登錄!';
exit;
}else{
$valid_passwords = array ("admin" => "123456");
$valid_users = array_keys($valid_passwords);
$user = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
$validated = (in_array($user, $valid_users)) && ($pass == $valid_passwords[$user]);
if (!$validated) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
die ("Not authorized");
}
}
}