Уничтожение сеанса $_SERVER?
-
21-08-2019 - |
Вопрос
Хорошо, я не использую переменные сеанса, а мой код выглядит так:
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="Enter your Twitter username and password:"');
header('HTTP/1.0 401 Unauthorized');
echo 'Please enter your Twitter username and password to view your followers.';
exit();
}
$username = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];
Итак, мой вопрос: как я могу уничтожить этот сеанс входа в систему, когда пользователь хочет выйти из своих (в данном случае) учетных данных для входа в Twitter?
Решение
Все, что вы можете сделать, это отправить еще один заголовок 401.Браузер обычно «забывает» старое значение, открывает другое диалоговое окно ввода пользователя/пароля, и если пользователи затем нажимают кнопку «Прервать», они «выходят из системы».Два недостатка:
- Диалоговое окно «прервать вход в систему для выхода из системы» может немного удивить пользователей.
- «обычно» означает:лучше не зависеть от этого.
редактировать:И уже был дан ответ Выход из HTTP-аутентификации через PHP
Другие советы
Невозможно уничтожить серверную часть входа в систему HTTP-аутентификации.Это один из самых больших недостатков этой формы входа.
Не связан с StackOverflow