Destruindo a sessão $ _Server?
-
21-08-2019 - |
Pergunta
Ok, então não estou usando nenhuma variável de sessão, mas meu código se parece com o seguinte:
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'];
Então, minha pergunta é: como posso destruir esta sessão de login quando o usuário deseja assinar suas credenciais de login (neste caso) do Twitter?
Solução
Tudo o que você pode fazer é enviar outro cabeçalho 401. O navegador geralmente "esquece" o valor antigo, exibe outra caixa de diálogo de entrada/passagem e, se os usuários pressionarem o botão "abortar", eles estão "registrados". Duas desvantagens:
- A caixa de diálogo "Abortar o login para logout" pode surpreender um pouco os usuários
- "Geralmente" significa: é melhor não depender disso.
editar: e já foi respondido, Logout de autenticação HTTP via PHP
Outras dicas
Não há como destruir um lado do servidor de login de autenticação HTTP. Essa é uma das maiores desvantagens dessa forma de login.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow