Pergunta

Duplicate possíveis:
HTTP autenticação de logout via PHP

Hi

Eu tenho um algumas funcionalidades no meu site protegido usando .htaccess e .htpasswd. Quando os usuários tentam acessar este, que recebem pedido para introduzir detalhes. Eles introduzir os seus dados e entrar e pode ver coisas etc. Tudo funciona bem.

A minha pergunta é como faço para criar uma funcionalidade logout para este tipo de autenticação. Eu sei que eles podem fechar a janela do navegador para "Sair". Mas este não é o ideal. O que você sugere para mim?

Graças.

Foi útil?

Solução

Navegadores normalmente não suportam isso, consulte Como faço para sair?

Uma vez que os navegadores começou implementar a autenticação básica, administradores do site têm queria sei como deixar registrar o usuário para fora. Uma vez que o navegador armazena em cache o nome de usuário e uma senha com a autenticação reino, como descrito anteriormente neste tutorial, esta não é uma função de a configuração do servidor, mas é um questão de obter o navegador para esquecer as informações de credencial, então que a próxima vez que o recurso é solicitado, o nome de usuário e senha devem ser fornecidos novamente. tem inúmeras situações em que isso é desejáveis, tal como quando se utiliza um navegador em um local público, e não que desejam deixar o navegador logado em, de modo que a próxima pessoa pode obter em sua conta bancária.

No entanto, embora este é talvez o pergunta mais freqüente sobre autenticação básica, até agora nenhum dos os principais fabricantes de navegadores têm visto como sendo esta uma característica desejável para colocar em seus produtos.

Consequentemente, a resposta a esta pergunta é, você não pode. Desculpe.

Existem extensões do navegador que lhe permitem limpar a autenticação de HTTP para um site. Para o Firefox o WebDeveloper extensão (que é uma das minhas extensões favortie de qualquer maneira) oferece esse recurso. O menu para isso é Miscellaneous/Clear Private Data/HTTP Authentication.

Outras dicas

Testado em Firefox e Chrome . O que você pode fazer é enviar o usuário para http: // Sair: logout@example.com . Isto irá substituir o seu atual nome de usuário / senha com o logout / logout (que poderia ser qualquer usuário combinação inválida / pass) e uma vez que eles agora têm a errada nome de usuário / senha, eles terá de login novamente para acessar o site.

Na ópera isso não funciona, porque você pode ter vários nomes de usuário / senhas ao mesmo tempo. Não funcionou no IE também, porque o IE não parecem apoiar http: // username: password@example.com URLs.

Eu corri para este problema há vários anos. É extremamente frustrante para descobrir que há um problema que todos está tendo e ninguém parece querer resolver de uma forma geral.

Como observado no funcionalidade Sair inadequada em HTTP Authentication acho que a resposta é mudar o RFC para permitir tempos de espera e apoiar um log out botão. sugestão adicional do autor de que o servidor poderá enviar um "log out" cabeçalho seria realmente eliminar a necessidade de qualquer suporte de agente de usuário do cliente desde sites poderia simplesmente incluir um link em uma página da web para uma URL que retorna o código de resposta necessária e / ou cabeçalho para invalidar a sessão atual.

É uma espécie de possível fazer logout. Você deve implementar o logout página, que irá retornar HTTP 401, até que o usuário insira informações de login BAD, e em seguida, redirecionar para outro lugar. Navegador lembra as últimas informações de login aceito, e, portanto, substitui o login correto.

Mas isso é meio inútil, porque ele precisa da cooperação do usuário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top