Comment déconnexion lors de l'utilisation.htaccess (et.htpasswd) d'authentification? [dupliquer]

Double Possible:

l'authentification HTTP de déconnexion via PHP

Hi

j'ai une certaine fonctionnalité sur mon site Web protégée en utilisant .htaccess et .htpasswd . Lorsque les utilisateurs tentent d'y accéder, ils sont invités à entrer des détails. Ils entrent leurs données et entrent et peuvent voir des choses, etc. Tout fonctionne très bien.

ma question Est de savoir comment créer une fonctionnalité logout pour ce type d'authentification. Je sais qu'ils peuvent fermer la fenêtre du navigateur pour "Déconnexion". Mais ce n'est pas l'idéal. Que suggéreriez-vous à moi?

Merci.

27
demandé sur Community 2009-07-22 12:33:34

4 réponses

les navigateurs ne supportent généralement pas cela, voir Comment puis-je me déconnecter?

depuis que les navigateurs ont commencé mise en œuvre de l'authentification de base, les administrateurs de sites Web ont voulu savoir comment laisser l'utilisateur se déconnecter. Puisque le navigateur cache le nom d'utilisateur et mot de passe avec l'authentification royaume, comme décrit plus haut dans ce tutoriel, ce n'est pas une fonction de la configuration du serveur, mais est un question de mise en le navigateur oubliez les informations d'identification, de sorte que la prochaine fois que la ressource est demandé, le nom d'utilisateur et mot de passe doit être fourni à nouveau. Il y a de nombreuses situations dans lesquelles c'est souhaitable, comme lors de l'utilisation d'un navigateur dans un endroit public, et non désireux de quitter le navigateur connecté pour que la prochaine personne puisse dans votre compte de banque.

cependant, bien que ce soit peut-être le questions les plus fréquemment posées sur base l'authentification, à ce jour aucun des les principaux fabricants de navigateurs ont considéré comme une caractéristique souhaitable à mettre dans leurs produits.

par conséquent, la réponse à cette la question Est, tu ne peux pas. Je suis désolé.

il y a des extensions de navigateur qui vous permettent d'effacer L'authentification HTTP pour un site. Pour Firefox le WebDeveloper extension (qui est une de mes extensions favortie de toute façon) offre cette fonctionnalité. Le menu pour cela est Miscellaneous/Clear Private Data/HTTP Authentication .

31
répondu Ludwig Weinzierl 2009-07-22 09:27:11

testé sur firefox et chrome . Ce que vous pouvez faire est d'envoyer l'utilisateur à http://logout:logout@example.com . Ceci remplacera leur nom d'utilisateur/mot de passe actuel par logout/logout (cela pourrait être n'importe quelle combinaison d'utilisateur/pass invalide) et puisqu'ils ont maintenant le nom d'utilisateur / mot de passe erroné, ils devront se connecter à nouveau pour accéder au site.

sur opera cela ne fonctionne pas, parce que vous pouvez avoir plusieurs noms d'utilisateur/mots de passe à la même temps. Il n'a pas fonctionné sur IE non plus, parce que IE ne semble pas soutenir http://username:password@example.com URLs.

22
répondu Marius 2017-03-27 15:42:46

j'ai rencontré ce numéro il y a plusieurs années. Il est très frustrant de découvrir il y a un problème que tout le monde connaît et personne ne semble vouloir résoudre d'une manière générale.

tel que noté dans inadéquate logout functionality in HTTP Authentication je pense que la réponse est de changer la RFC pour permettre des temps morts et soutenir un bouton de déconnexion. La suggestion supplémentaire de l'auteur que le serveur soit en mesure d'envoyer un en-tête "log out" serait en fait Eliminer le besoin de tout soutien d'agent d'utilisateur client car les sites Web pourraient simplement inclure un lien sur une page web à une URL qui renvoie le code de réponse et/ou l'en-tête nécessaire pour invalider la session en cours.

2
répondu Grant Wagner 2009-07-22 16:27:11

il est en quelque sorte possible de se déconnecter. Vous devez implémenter la page de déconnexion, qui retournera HTTP 401, jusqu'à ce que l'utilisateur entre de mauvaises informations de connexion, puis rediriger ailleurs. Le navigateur se souvient de la dernière information de connexion acceptée, et donc l'annulation de la connexion correcte.

mais c'est un peu inutilisable, car il a besoin de la coopération de l'utilisateur.

1
répondu nothrow 2009-07-22 09:40:04