2010-06-30 7 views
4

J'utilise Twitter OAuth pour se connecter. La connexion amène les utilisateurs sur Twitter et, en cas de succès, OAuth les renvoie à une URL spécifiée. A partir de cette URL je voudrais rediriger les utilisateurs vers la page où ils se trouvaient avant de se connecter.Django redirige vers la page précédente après connexion OAuth externe

Quelle est une bonne façon de faire cela?

Répondre

3

Deux façons:

  1. Craft votre URL OAuth afin qu'il les renvoie à la page de droite, ou au moins dans le dit next=url querystring. Ceci est le plus fiable mais peut casser (et est moche mais qui copie et colle des adresses OAuth de toute façon?)

  2. Stockez une session contenant la dernière page "réelle" demandée. Je dis "vrai" comme ça parce que je ne compte pas les pages auth/registration comme réelles. Donc, à chaque coup, vérifiez l'URL sur laquelle ils se trouvent, si ce n'est pas lié à l'authentification, stockez-la en session. Quand ils atteignent votre page OAuth-auccess, redirigez-les vers la valeur de la session. Vous pouvez le faire dans un processeur de contexte ou un intergiciel. Nécessite des cookies et la déconnexion va nuke it.

+0

Ouais, je fais la chose de la session. Réglez simplement request.session ['next'] = request.META ['HTTP_REFERER'] dans ma vue de connexion avant de passer à Twitter. Je ne pense pas que Twitter me permettra d'ajouter des liens dynamiques à mon URL de retour, même si je me trompe peut-être. – Steve

0

J'utilise l'URL de redirection dans twitter url auth et son travail pour moi ..

Questions connexes