Есть ли способ выйти из аутентификации дайджеста, выполненной в php.PHP Дайджест авторизации, выход из системы
Я пробовал unset ($ _ 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;
}
Что еще мне нужно добавить к функции выхода из системы, чтобы закончить это.
Если я сменил область, она работает, но я не хочу, чтобы она менялась.
Дубликат [Отправка HTTP-аутентификации через PHP] (http://stackoverflow.com/questions/449788/http-authentication-logout-via-php). Ответ: № – netcoder
Я знаю, что это можно сделать, просто не уверен, как это сделать. –
закрыть браузер - единственный способ, поскольку информация зарегистрирована внутри браузера. – ajreal