Wie abzumelden, wenn .htaccess (und .htpasswd) Authentifizierung verwenden? [Duplikat]
-
18-09-2019 - |
Frage
Mögliche Duplizieren:
HTTP-Authentifizierung logout über PHP
Hallo
Ich habe eine gewisse Funktionalität auf meiner Website mit .htaccess
und .htpasswd
geschützt.
Wenn Benutzer versuchen, diese zuzugreifen, erhalten sie prompt Details einzugeben. Sie geben ihre Details und bekommen in und sehen Sachen etc. Alles funktioniert gut.
Meine Frage ist, wie kann ich eine logout
Funktionalität für diese Art der Authentifizierung erstellen. Ich weiß, dass sie die Browser-Fenster auf „Logout“ schließen kann. Aber das ist nicht ideal. Was würden Sie mir?
Danke.
Lösung
Browser in der Regel tun dies nicht unterstützen, finden Sie Wie ich aus melde?
Da Browser gestartet erster Implementierung der Standardauthentifizierung, Website-Administratoren haben wollte wissen, wie der Benutzer sich abmelden lassen. Da der Browser-Caches den Benutzernamen und das Passwort mit der Authentifizierung Reich, wie zuvor in diesem beschrieben Tutorial, das ist nicht eine Funktion von die Serverkonfiguration, ist aber ein Frage des Erhaltens der Browser vergessen die Anmeldeinformationen, so die Ressource, die das nächste Mal ist angefordert, der Benutzername und das Passwort müssen wieder zugeführt werden. Es gibt zahlreiche Situationen, in denen dies wünschenswert, wenn beispielsweise ein unter Verwendung von Browser in einem öffentlichen Ort, und nicht wollen den Browser angemeldet verlassen in, so dass die nächste Person bekommen auf Ihr Bankkonto.
Doch obwohl dies vielleicht die am häufigsten gestellte Frage über Basis-Authentifizierung, die bisher keines die großen Browser-Hersteller haben gesehen dies als ein wünschenswertes Merkmal sein setzen in ihre Produkte.
Folglich ist die Antwort auf diese Frage Frage ist, kann man nicht. Es tut uns Leid.
Es gibt Browser-Erweiterungen, die Ihnen die HTTP-Authentifizierung für eine Website löschen lassen.
Für Firefox den WebDeveloper
Andere Tipps
Getestet auf Firefox und Chrome . Was Sie tun können, ist, den Benutzer zu http senden: // logout: logout@example.com . Dies wird ihr aktuelles Benutzername / Passwort mit logout / Logout ersetzen (es könnte eine unwirksame Benutzer / Pass Kombination sein), und da sie jetzt das falschen Benutzername / Passwort haben, müssen sie sich wieder anmelden auf die Website zugreifen.
Auf Oper dies nicht funktioniert, weil Sie mehrere Benutzernamen / Passwörter zur gleichen Zeit haben. Es hat auch nicht auf IE arbeiten, weil IE nicht erscheint http zu unterstützen: // username: password@example.com URLs.
Ich lief in dieser Frage vor einigen Jahren. Es ist unglaublich frustrierend zu entdecken, gibt es ein Problem jeder hat und niemand scheint in allgemeiner Art und Weise lösen zu wollen.
Wie bereits erwähnt in Unzureichende Logout-Funktionalität in HTTP-Authentifizierung ich denke, die Antwort ist den RFC zu ändern Timeouts zu ermöglichen und eine Schaltfläche abmelden zu unterstützen. Der zusätzliche Vorschlag des Autors, dass der Server in der Lage sein, einen „Abmelden“ Header senden würde die Notwendigkeit tatsächlich beseitigt für jeden Client-Support-User-Agenten, da Websites könnten einfach einen Link auf einer Webseite zu einer URL, die Liefert der erforderliche Antwortcode und / oder Kopf die aktuelle Sitzung ungültig zu machen.
Es ist eine Art möglich abzumelden. Sie sollten Logout-Seite implementieren, die HTTP 401 zurück, bis der Benutzer BAD Login-Daten eingeben und dann umzuleiten. Browser merkt sich die aktuelle Login-Daten akzeptiert, und daher außer Kraft setzt korrekte Anmeldung.
Aber das ist irgendwie unbrauchbar, cos es Benutzer Zusammenarbeit muss.