Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / выполнить logout для basic auth / 12 сообщений из 12, страница 1 из 1
26.10.2017, 16:08
    #39542623
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнить logout для basic auth
Подскажите как выполнить 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
26.10.2017, 17:23
    #39542721
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнить logout для basic auth
Ну вы же пишите эти заголовки каждый раз, у тебя и появляется окно авторизации. Чего еще вы ожидали?

http://php.net/manual/ru/features.http-auth.php
...
Рейтинг: 0 / 0
27.10.2017, 11:46
    #39543107
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнить logout для basic auth
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
30.10.2017, 10:18
    #39544210
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнить logout для basic auth
проблема актуальна, порошу помочь!
...
Рейтинг: 0 / 0
30.10.2017, 15:49
    #39544576
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнить logout для basic auth
что никто не знает?
...
Рейтинг: 0 / 0
30.10.2017, 16:22
    #39544622
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнить logout для basic auth
nikomp,

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

nikompно переменная $_SERVER['PHP_AUTH_USER'] существует поэтому разлогиниться немогуКроме существования, переменная имеет ещё и некоторое значение, которое не возбраняется проверить и по результатам проверки выполнить те или иные действия.
...
Рейтинг: 0 / 0
31.10.2017, 13:28
    #39545211
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнить logout для basic auth
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
31.10.2017, 16:29
    #39545390
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнить logout для basic auth
nikompокно вообще не появляется. т.е. я один раз зашел на сайт, дальше хочу перелогиниться под другим пользователем, но переменная $_SERVER['PHP_AUTH_USER'] существует поэтому разлогиниться немогу

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

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

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

Код: 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
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / выполнить logout для basic auth / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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