8
votes

Déconnexion avec Django-Social-Auth

Je tire un peu avec Django-Social-auth à l'aide de l'authentification Twitter.

Je peux me connecter.

mais, quand j'essaie de vous déconnecter en utilisant django.contrib.auth.logout , il ne se déconnecte pas.

Quelle est la façon de vous déconnecter?

Merci.


4 commentaires

Pouvez-vous poster votre code de déconnexion?


J'ai le même problème :/


Essayez-vous de vous déconnecter de Twitter aussi? Cela ne sera pas possible sans utiliser de SDK de Twitter depuis la déconnexion d'un site tiers implique de jouer avec leurs cookies, de sorte que vous avez besoin de JS du même domaine pour gâcher avec eux.


J'essaie d'accomplir cela moi-même et de courir dans le même problème. Bien que la fonction de déconnexion de Django puisse bien travailler pour enregistrer la personne de l'application Django, cela n'a pas beaucoup d'importance si lorsque quelqu'un va à nouveau sur le site, ils sont acceptés dès le retour en raison du jeton autonome étant toujours autour. Donc, je suppose que la question est de savoir comment détruire le jeton d'authentification du navigateur via une commande de type de déconnexion? Sinon, dans les situations où quelqu'un se connecte d'un ordinateur partagé de quelque sorte, il ne semble pas y avoir de moyen de ne pas rester connecté ou authentifié.


3 Réponses :


5
votes

Avez-vous une vue de déconnexion? Vous devez avoir une vue de déconnexion.

exemple: xxx


1 commentaires

J'ai une vue de déconnexion, et c'est ce que je faisais exactement. Mais cela ne se déconnectera pas de Twitter.



9
votes

essayez-vous de vous déconnecter uniquement à partir de l'application Django ou souhaitez-vous "oublier" l'accès Twitter? Habituellement, le jeton Twitter Auth est stocké pour une connexion simplifiée pour la prochaine fois qu'un utilisateur souhaite se connecter à Twitter, l'utilisateur ne doit donc pas "accepter" l'accès à nouveau.

Django Logout

Si vous Il suffit de vous déconnecter du système d'authentification Django, il devrait suffire d'utiliser le django.contrib.auth.view.contrib.auth.views.logout ou pour créer une vue de déconnexion personnalisée.

Social Auth Deconnect

Pour déshabiller complètement / déconnecter un compte social, vous devez utiliser les fonctions de déconnexion dans Social-Auth. Vous pouvez obtenir l'URL de déconnexion à l'aide de la balise de modèle suivante: xxx

Pour plus d'informations, veuillez vous reporter à http://django-social-auth.readthedocs.org/fr/v0.7.22/configuration.html # liaison-in-vos-modèles .

Invite d'approbation de la force

Parce que vous avez déjà autorisé votre application Accès au fournisseur OAuth, le fournisseur d'authentifie se souviendra que décision. Il existe généralement deux façons de forcer une confirmation de cette autorisation d'accès:

  • révoquer l'autorisation d'accès dans la console de gestion de votre fournisseur d'authentificateur (par exemple, Accédez à l'application Twitter).
  • Définissez un argument supplémentaire OAuth qui oblige l'invite d'approbation. Je ne sais pas si Twitter fournit une telle chose, mais si vous utilisez Google OAuth2, vous pouvez simplement ajouter {'approbation_prompt': 'forcer'}} au Google_oauthe2_auth_extra_arguments réglage.


0 commentaires

4
votes

Cette réponse est obsolète comme Django-Social-Auth est maintenant Python-Social-Auth

Voir la nouvelle réponse de pile de pile ici .

lire les docs ici


0 commentaires