2010-02-26 11 views
0

Tousfonctionnalité de déconnexion dans django

En projet django si 2 fenêtres de modèle sont ouvertes et si la déconnexion est déclenchée dans une fenêtre les autres cookies de fenêtre ne sont pas cleared.How pour supprimer les cookies aussi pour que la fermeture de session sera déclenchée .

def logout(request): 
    //request = redirect('webbie.home.views.loginpage') 
    //request.delete_cookie('user_location') 
    return auth_logout(request) 

Merci ..

Répondre

0

Que voulez-vous dire exactement? Vous voulez dire que si vous avez des fenêtres ouvertes avec le même site Web et que vous vous déconnectez dans une fenêtre, vous n'êtes pas déconnecté dans l'autre fenêtre? Je doute que.

Bien sûr, vous n'êtes pas redirigé dans l'autre fenêtre vers une certaine page car vous n'avez rien fait dans cette fenêtre spécifique. Mais si vous cliquez sur un lien qui n'est disponible que pour les utilisateurs connectés, vous devriez être redirigé vers une page de connexion. Et non, vous ne pouvez pas détecter du côté client si un utilisateur s'est déconnecté d'un autre site, du moins pas sans Ajax et certaines vérifications personnalisées.

+0

Redirection vers la page de connexion ne se produit pas dans la seconde fenêtre, il a l'état de connexion set.So i appris qu'il pourrait y avoir comme problème avec les témoins – Hulk

+0

Son pas le cas. vous voulez dire que si vous changez de page, vous êtes toujours connecté? Si vous avez une application de type ajax, vous êtes responsable de vérifier l'état de l'utilisateur, puis de le rediriger si nécessaire. – jujule

1

Dans le cookie, vous ne devez stocker qu'une clé de session. Le serveur doit ensuite garder une trace de toutes les clés de session et associer une date/heure d'expiration et un compte d'utilisateur avec celles-ci. Pour chaque utilisateur qui se connecte, une nouvelle clé de session doit lui être attribuée, bien que vous puissiez autoriser plusieurs connexions/compte utilisateur. Ainsi, lorsque vous vérifiez si le cookie est valide, vous devez consulter votre DB de base de données et voir si vous avez cette clé de session et qu'elle est valide. Si vous voulez maintenant "tuer" toutes les sessions actives d'un compte utilisateur lorsque l'un d'entre eux se déconnecte, il vous suffit de supprimer toutes les clés de session de la liste des clés de session de votre serveur.
Vous devriez essayer de ne pas stocker de données sensibles dans les cookies, une clé de session suffit et demander au serveur d'associer des données à cette clé. Vous avez maintenant le contrôle des utilisateurs connectés.
Plus d'informations de la session Django là-bas documentation: http://docs.djangoproject.com/en/dev/topics/http/sessions/

Questions connexes