2010-06-30 47 views
4

我正在使用Twitter OAuth登錄用戶。登錄將用戶帶到Twitter,成功的OAuth將其返回到指定的URL。從這個網址,我想重新引導用戶回到登錄前他們的頁面。Django在外部OAuth登錄後重定向到上一頁

什麼是一個很好的方法來做到這一點?

回答

3

兩種方式:

  1. 工藝的OAuth使用URL所以它發回給正確的頁面,或者至少說,在查詢字符串next=url。這是最可靠的,但可以打破(而且確實看起來醜陋,但誰又在複製和粘貼OAuth URL?)

  2. 存儲包含上次請求的「真實」頁面的會話。我這樣說「真實」,因爲我沒有將任何授權/註冊頁面視爲真實。因此,每次點擊時,都要查看它們所在的URL,如果它與授權無關,請將其存儲在會話中。當他們擊中你的OAuth-auccess頁面時,將它們重定向到會話值。您可以在上下文處理器或某些中間件中執行此操作。需要cookies並註銷會將其燒掉。

+0

是的,我正在做的事情的會話。在訪問Twitter之前,只需在我的登錄視圖中設置request.session ['next'] = request.META ['HTTP_REFERER']即可。 我不認爲Twitter會讓我添加動態querystrings到我的回報網址,雖然也許我錯了。 – Steve 2010-07-02 00:22:48

0

我使用重定向Twitter的驗證網址和它的工作對我來說網址..