2 votes

déconnexion avec django et django_openid_auth

J'ai réussi à faire fonctionner django_openid_auth dans mon projet django, et je peux maintenant me connecter avec mon compte Google. Ce que je n'arrive pas à comprendre, c'est comment se déconnecter. La méthode standard django.contrib.auth.views.logout déconnectera l'utilisateur, mais la visite ultérieure d'une page nécessitant une authentification authentifiera à nouveau l'utilisateur sans demande. Comment puis-je déconnecter complètement l'utilisateur ?

1voto

berni Points 1247

L'un des objectifs d'OpenId est de simplifier le processus de connexion. Le comportement que vous rencontrez est tout à fait correct. . La première fois que vous vous êtes connecté à votre application avec votre compte Google, vous avez autorisé le fournisseur OpenId (Google) à envoyer des données à votre application. Comme les données sont toujours dans la base de données, vous n'avez pas besoin d'être invité à nouveau à autoriser l'accès.

Néanmoins, si vous voulez être invité à nouveau, vous devez effacer manuellement les données de la base de données. Vous pouvez le faire en créant une vue de déconnexion personnalisée ou en utilisant l'infrastructure Signal et en ajoutant ce qui suit :

from django.contrib.auth.signals import user_logged_out
@receiver(user_logged_out)    
def clear_openid_data(sender, user,**kwargs):
    # wipe out data according to models in django_openid_auth..

à signals.py

Il convient de mentionner que utilisateur_déconnecté est disponible depuis Django 1.3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X