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?

Foi útil?

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
scroll top