用 PHP 進行 HTTP 認證,Basic Auth

實現基本的簡單Basic Auth認證。

php手冊

可以用 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");
            }
        }
}

效果圖 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章