Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Basic HTTP Auth: Как разлогиниться?

12K
23 января 2008 года
Dipish
33 / / 08.08.2006
Здравствуйте. Такая ситуация: скрипт лежит в директории, защищенной средствами Apache с помощью .htaccess и .htpasswd. Созрел такой вопрос: а как в скрипте реализовать кнопку "выйти"? Т.е. чтобы при нажатии на кнопку(ссылку) снова всплыло окошко логина, ну и естественно при нажатии cancel чтоб Апач выдавал ошибку авторизации?

Пробовал так - посылаю заголовки:

 
Код:
Header( "WWW-authenticate: basic  realm=\"Test  Authentication  System\"");
Header( "HTTP/1.0  401  Unauthorized");


Это работает, но не совсем так, как хотелось бы. Окошко логина всплывает, но, нажав на cancel, можно спокойно продолжать работать в защищенной области. Подскажите пожалуйста, как это грамотно делается? Заранее
12K
26 января 2008 года
Dipish
33 / / 08.08.2006
alekciy большое спасибо что откликнулись, но много нового по приведенным Вами ссылкам я не узнал.
В итоге мне удалось добиться нормальной работы в ИЕ, работы со второго раза (т.е. 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;
 }


Причем код после отправки заголовков (в данном случае вывод сообщения "logged out") выполняется лишь в ИЕ, а в опере просто показывается стандартная страница ошибки "Authorization Required"

Буду очень рад замечаниям и предложениям!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог