Однако у нее есть один недостаток: нет нормального способа отлогиниться от страницы. Т.е. не закрывая браузер вы никак не сможете выйти из защищенной области так, чтобы при повторном входе страница снова потребовала бы у вас пароль.
На эту тему есть интересный трикс. Нужно снова зайти на страницу с заведомо не правильным логином и паролем. Сделать это можно, послав пользователя по ссылке вида:
http://user:pass@you-domain.com/you-page
Таким образом вы можете осуществить сброс HTTP авторизации. Конечно user и pass не должны быть зарегистрированы в системе.
Вот вам пример защищенной страницы на PHP:
<?php $admin_user='admin'; $admin_password='12345'; $request_path=parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); if(isset($_GET['logout'])) { header("Location: http://x:x@".$_SERVER['SERVER_NAME'].$request_path); } elseif(@$_SERVER['PHP_AUTH_USER']!=$admin_user || @$_SERVER['PHP_AUTH_PW']!=$admin_password) { header('WWW-Authenticate: Basic realm="Please login"'); header('HTTP/1.0 401 Unauthorized'); die("Access forbidden"); } echo '<h1>This page protected by http authorization.</h1>'; echo '<a href="'.$request_path.'?logout">logout</a>'; ?>
Кстати, трикс придумал не я, а подсмотрел его у Jacob Wright.
2 комментария:
Кривовато работает, если дальше снова пытаться авторизоваться
Да, не лучший способ. Но другого и нет.
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.