Проверка подлинности дайджеста PHP, выход

Есть ли способ выйти из дайджест-аутентификации, выполненной на php.

Я пробовал отключить ($ _ SERVER ["PHP_AUTH_DIGEST"]); Но он не просит повторного входа. Я знаю, что если я закрою браузер, он будет работать, и вот мои функции.

    function login(){
        $realm = "Restricted area";
        $users = array("jamesm"=>"");
        if (empty($_SERVER["PHP_AUTH_DIGEST"])) {
            header("HTTP/1.1 401 Unauthorized");
            header("WWW-Authenticate: Digest realm=\"{$realm}\",qop=\"auth\",nonce=\"".uniqid()."\",opaque=\"".md5($realm)."\"");
            return false;
        }
        if (!($data = http_digest_parse($_SERVER["PHP_AUTH_DIGEST"])) || !isset($users[$data["username"]]))
            return false;
        $A1 = md5($data["username"] . ":{$realm}:{$users[$data["username"]]}");
        $A2 = md5($_SERVER["REQUEST_METHOD"].":{$data["uri"]}");
        $valid_response = md5("{$A1}:{$data["nonce"]}:{$data["nc"]}:{$data["cnonce"]}:{$data["qop"]}:{$A2}");
        if ($data["response"] != $valid_response)
            return false;
        return true;
    }
    function logout(){
        unset($_SERVER["PHP_AUTH_DIGEST"]);
        return true;
    }

Что еще мне нужно добавить к функции выхода, чтобы завершить это.

Если я изменю область, она работает, но я не Я не хочу, чтобы это было изменено.

6
задан JamesM-SiteGen 5 January 2011 в 04:55
поделиться