Comment déconnecter lors de l'utilisation .htaccess (et .htpasswd) authentification? [dupliquer]
-
18-09-2019 - |
Question
Possible en double: authentification HTTP via PHP Déconnexion
Salut
J'ai certaines fonctionnalités sur mon site protégé en utilisant .htaccess
et .htpasswd
.
Lorsque les utilisateurs tentent d'y accéder, ils obtiennent rapidement entrer dans les détails. Ils entrent dans leurs détails et entrer et peuvent voir des choses, etc. Tout fonctionne très bien.
Ma question est de savoir comment puis-je 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 idéal. Que proposeriez-vous pour moi?
Merci.
La solution
Browsers généralement ne prennent pas en charge ce sujet, consultez Comment puis-je me déconnecter?
Depuis les navigateurs ont commencé la mise en œuvre l'authentification de base, Les administrateurs du site ont voulu savoir comment laisser l'utilisateur se déconnecter. Étant donné que le navigateur met en cache le nom d'utilisateur et mot de passe avec l'authentification domaine, comme décrit plus haut dans ce tutoriel, ce n'est pas une fonction de la configuration du serveur, mais est question d'obtenir le navigateur oublier les informations d'identification, de sorte que la prochaine fois que la ressource est sur demande, le nom d'utilisateur et mot de passe doit être fourni à nouveau. Il y a de nombreuses situations dans lesquelles cela est souhaitable, par exemple lors de l'utilisation d'un navigateur dans un lieu public, et non qui souhaite quitter le navigateur connecté , de sorte que la prochaine personne peut obtenir dans votre compte bancaire.
Cependant, bien que ce soit peut-être la le plus souvent posées sur la l'authentification de base, jusqu'ici aucun des les fabricants de navigateurs principaux ont vu cela comme étant une caractéristique souhaitable de mettre dans leurs produits.
En conséquence, la réponse à cette question est, vous ne pouvez pas. Désolé.
Il existe des extensions de navigateur qui vous permettent d'effacer l'authentification HTTP pour un site.
Pour Firefox WebDeveloper extension (qui est l'un de mes extensions imaginions de toute façon) offre cette fonctionnalité.
Le menu de c'est Miscellaneous/Clear Private Data/HTTP Authentication
.
Autres conseils
Testé sur FireFox et Chrome . Ce que vous pouvez faire est d'envoyer à l'utilisateur http: // Déconnexion: logout@example.com . Cela remplacera son nom d'utilisateur / mot de passe actuel avec fermeture de session / fermeture de session (il pourrait être tout utilisateur non valide / passe combinaison) et qu'ils ont maintenant le mauvais nom d'utilisateur / mot de passe, ils devront se connecter à nouveau pour accéder au site.
Sur l'opéra cela ne fonctionne pas, parce que vous pouvez avoir plusieurs noms d'utilisateur / mots de passe en même temps. Il ne fonctionne pas sur IE soit, parce que IE ne semble pas soutenir http: // nom d'utilisateur: password@example.com URL.
Je suis tombé sur cette question il y a plusieurs années. Il est incroyablement frustrant de découvrir il y a un problème que tout le monde est d'avoir et personne ne semble vouloir résoudre d'une manière générale.
Comme indiqué dans inadéquate fonctionnalité de déconnexion dans l'authentification HTTP Je pense que la réponse est de changer la RFC pour permettre les délais d'attente et d'appuyer sur un bouton vous déconnecter. suggestion supplémentaire que le serveur de l'auteur soit en mesure d'envoyer un en-tête « déconnecter » éliminerait effectivement la nécessité de any client support de l'agent utilisateur depuis les sites Web peuvent simplement inclure un lien sur une page Web à une URL renvoie le code de réponse nécessaire et / ou en-tête pour invalident la session en cours.
Il est un peu possible de vous déconnecter. Vous devez mettre en œuvre la page de fermeture de session, qui retournera HTTP 401, jusqu'à ce que l'utilisateur d'entrer des informations de connexion BAD, puis rediriger ailleurs. Navigateur rappelle les dernières informations de connexion acceptée, et remplace donc la connexion correcte.
Mais cela est un peu inutilisable, cos il a besoin de la coopération de l'utilisateur.