Zerstören $ _server Sitzung?
-
21-08-2019 - |
Frage
Okay, ich benutze keine Sitzungsvariablen, sondern mein Code sieht so aus:
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'];
Meine Frage ist also, wie kann ich diese Anmeldesitzung zerstören, wenn sich der Benutzer von seinen (in diesem Fall) Twitter -Login -Anmeldeinformationen abmelden möchte?
Lösung
Alles was Sie tun können, ist einen weiteren 401 -Header zu senden. Der Browser "Vergessen" normalerweise den alten Wert, popt ein anderes Benutzer-/Pass -Eingangsdialog. Wenn Benutzer die Schaltfläche "Abbruch" drücken, sind sie "protokolliert". Zwei Nachteile:
- Das Dialog "Anmeldung zum Abmelden abmelden" kann die Benutzer ein wenig überraschen
- "Normalerweise" bedeutet: besser nicht davon abhängig.
Bearbeiten: und wurde bereits beantwortet, HTTP -Authentifizierungsanmeldung über PHP
Andere Tipps
Es gibt keine Möglichkeit, eine HTTP -Authentifizierungs -Login -Server -Seite zu zerstören. Dies ist einer der größten Nachteile dieser Form der Anmeldung.