2010-07-11 6 views
0

est-il possible de dire à Apache qu'il doit redémarrer la session et supprimer une authentification http existante?réinitialiser http-auth avec php

J'ai un système où un utilisateur est d'abord authentifié avec http-auth contre apache et ensuite autorisé pour les services au sein de l'application PHP. Une fois que l'utilisateur se déconnecte, je préfère également réinitialiser l'authentification http existante.

Des idées?

+0

http://stackoverflow.com/questions/449788/http-authentication-logout-via-php –

Répondre

3

Malheureusement, laisser les utilisateurs se déconnecter n'était pas défini dans les divers RFC qui couvrent l'authentification HTTP. La seule façon de le simuler est de renvoyer une réponse 401, qui indiquera au navigateur que les informations d'identification envoyées ne sont pas valides. Malheureusement, le navigateur invite l'utilisateur à se reconnecter, ce qui n'est probablement pas ce que vous voulez.

+0

bien pas très confortable mais fait ce que j'attendais merci – pagid

0

Lorsqu'un navigateur est authentifié à l'aide de Http Basic Auth, il envoie l'en-tête d'autorisation valide à ce serveur pour toutes les demandes ultérieures.

L'exemple # 8 de this manual entry montre un moyen de demander au navigateur de se ré-authentifier. Cela ne fonctionnera que si le navigateur respecte cette requête, et vous devrez probablement coder un moyen de l'appliquer la première fois que l'utilisateur reviendra après la déconnexion, et non au moment de la déconnexion. (Dans le cas contraire, ils se déconnectent et être immédiatement demandé des informations d'identification à nouveau.)

0

La méthode courante et la plus recommandée est:

  • envoyer un 401 non autorisé
  • demander un autre domaine = avec le WWW-Authenticate: en-tête

Mais vous pouvez augmenter cela avec:

  • essayer dans itiate les deux (401 + nouveau royaume) sur une XMLHttpRequest à un « fakelogout.php »
  • cette demande reconnaissent comme connexion suivante -> cette façon, le navigateur est plus susceptible de déposer les pouvoirs précédents
Questions connexes