powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / выполнить logout для basic auth
12 сообщений из 12, страница 1 из 1
выполнить logout для basic auth
    #39542623
nikomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как выполнить logout с сайта на котором используется basic auth.
сейчас пробую так

Код: php
1.
2.
3.
4.
header('WWW-Authenticate: Basic realm="my realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo "You need to enter a valid username and password.";
    exit;



окно с запросом авторизации зацикливается, т.е. ввожу пару логин пароль, нажимаю Войти, окно опять появляется. что не так?

может параметр realm неправильно использую, что там должно быть?
...
Рейтинг: 0 / 0
выполнить logout для basic auth
    #39542721
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вы же пишите эти заголовки каждый раз, у тебя и появляется окно авторизации. Чего еще вы ожидали?

http://php.net/manual/ru/features.http-auth.php
...
Рейтинг: 0 / 0
выполнить logout для basic auth
    #39543107
nikomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

попробовал воспользоваться кодом из ссылки

Код: php
1.
2.
3.
4.
5.
6.
7.
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Текст, отправляемый в том случае,
    если пользователь нажал кнопку Cancel';
    exit;
}



окно вообще не появляется. т.е. я один раз зашел на сайт, дальше хочу перелогиниться под другим пользователем, но переменная $_SERVER['PHP_AUTH_USER'] существует поэтому разлогиниться немогу

как быть?
...
Рейтинг: 0 / 0
выполнить logout для basic auth
    #39544210
nikomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема актуальна, порошу помочь!
...
Рейтинг: 0 / 0
выполнить logout для basic auth
    #39544576
nikomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что никто не знает?
...
Рейтинг: 0 / 0
выполнить logout для basic auth
    #39544622
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikomp,

Ваши посты содержат ответы на Ваш вопрос. Нужно "окошко" с запросом логина/пароля - присылайте клиенту код 401 (см. первый пост).

nikompно переменная $_SERVER['PHP_AUTH_USER'] существует поэтому разлогиниться немогуКроме существования, переменная имеет ещё и некоторое значение, которое не возбраняется проверить и по результатам проверки выполнить те или иные действия.
...
Рейтинг: 0 / 0
выполнить logout для basic auth
    #39545211
nikomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

Попробовал разрушить переменную $_SERVER['PHP_AUTH_USER']

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
    unset($_SERVER['PHP_AUTH_USER']);
   
   if (!isset($_SERVER['PHP_AUTH_USER'])) { 
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo "You need to enter a valid username and password.";
    exit;
   }



окошко опять ушло в цикл.

Я не совсем понимаю как организовать проверку этой переменной. При первом входе она устанавливается, например в user1, далее, я нажимаю "Выйти", разрушаю переменную. Проверка у меня проходит я ввожу корректные данные для user2. Окошко опять выводится.

что тут можно проверить?
...
Рейтинг: 0 / 0
выполнить logout для basic auth
    #39545390
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikompокно вообще не появляется. т.е. я один раз зашел на сайт, дальше хочу перелогиниться под другим пользователем, но переменная $_SERVER['PHP_AUTH_USER'] существует поэтому разлогиниться немогу

как быть?Закрыть браузер? На уровне HTTP протокола сервер может попросить у браузера авторизацию. Но в HTTP протоколе нет способа потребовать со стороны сервера, чтобы браузер забыл данные для авторизации.
...
Рейтинг: 0 / 0
выполнить logout для basic auth
    #39545400
nikomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone,

Получается, перелогиниться можно только перезапустив браузер?
...
Рейтинг: 0 / 0
выполнить logout для basic auth
    #39545417
nikomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот нашел http://blog.sci-smart.ru/2012/08/basic-authorization-logout.html

как переписать для php?
...
Рейтинг: 0 / 0
выполнить logout для basic auth
    #39545422
nikomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тут еще нашел, надо будет попробовать http://php.net/manual/ru/features.http-auth.php#88957
...
Рейтинг: 0 / 0
выполнить logout для basic auth
    #39545752
nikomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получилось вот так

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    if (!isset($_SESSION['reauth']))
    {
        
        header('WWW-Authenticate: Basic Realm="Login please"');
        header('HTTP/1.0 401 Unauthorized');
        $_SESSION['auth'] = true;
        $_SESSION['reauth'] = true;
        echo "Необходимо авторизоваться";
        exit;
    }
    $_SESSION['reauth'] = null;
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / выполнить logout для basic auth
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]