2009-06-30 12 views
4

Ok donc je ne suis pas à l'aide des variables de session, plutôt mon code ressemble à ceci:

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']; 

Alors, ma question est, comment puis-je détruire cette session de connexion lorsque l'utilisateur veut se déconnecter de leur (dans ce cas) les informations d'identification de connexion Twitter?

+1

même question, les mêmes réponses à http://stackoverflow.com/questions/449788/http-authentication-logout-via-php – VolkerK

Répondre

4

Tout ce que vous pouvez faire est d'envoyer un autre en-tête 401. Le navigateur "oublie" habituellement l'ancienne valeur, ouvre une autre boîte de dialogue de saisie utilisateur/passe et si les utilisateurs appuient sur le bouton "Abandonner", ils sont "déconnectés". Deux inconvénients:

  • Le « abort la connexion pour fermer la session » dialogue peut surprendre les utilisateurs un peu
  • « habituellement » signifie: mieux ne pas en dépendent.

modifier: Et a déjà répondu, HTTP authentication logout via PHP

+0

Ceci ainsi que d'autres possible les méthodes sont mentionnées dans les commentaires du manuel php. Cependant, comme vous l'avez dit, ils ne sont pas garantis de travailler. Lien: http://us3.php.net/manual/fr/features.http-auth.php#76511 – MitMaro

7

Il n'existe aucun moyen de détruire un côté de serveur de connexion d'authentification http. C'est l'un des plus grands inconvénients de cette forme de connexion.