Basic HTTP Auth: Как разлогиниться?
Пробовал так - посылаю заголовки:
Код:
Header( "WWW-authenticate: basic realm=\"Test Authentication System\"");
Header( "HTTP/1.0 401 Unauthorized");
Header( "HTTP/1.0 401 Unauthorized");
Это работает, но не совсем так, как хотелось бы. Окошко логина всплывает, но, нажав на cancel, можно спокойно продолжать работать в защищенной области. Подскажите пожалуйста, как это грамотно делается? Заранее
В итоге мне удалось добиться нормальной работы в ИЕ, работы со второго раза (т.е. 2 раза приходится нажимать на logout и затем на кнопку cancel) в Опере и полной неработы в Сафари. Привожу более полный фрагмент кода:
Код:
if($_GET['logout']==1)
{
unset($_SERVER['PHP_AUTH_USER']);
unset($_SERVER['PHP_AUTH_PW']);
Header( "WWW-authenticate: basic realm=\"My Authentication System\"");
Header( "HTTP/1.0 401 Unauthorized");
print "logged out";
exit;
}
{
unset($_SERVER['PHP_AUTH_USER']);
unset($_SERVER['PHP_AUTH_PW']);
Header( "WWW-authenticate: basic realm=\"My Authentication System\"");
Header( "HTTP/1.0 401 Unauthorized");
print "logged out";
exit;
}
Причем код после отправки заголовков (в данном случае вывод сообщения "logged out") выполняется лишь в ИЕ, а в опере просто показывается стандартная страница ошибки "Authorization Required"
Буду очень рад замечаниям и предложениям!