2016-09-19 109 views
0

我正在使用Django並驗證我的用戶,我有一個自定義OAuth2提供程序。我必須自己編寫登錄和註銷視圖,因爲他們正在做一些非常具體的事情。註銷後Django重定向

我希望在註銷後重定向到相同的URL。如果您在需要認證的網頁上,我想重定向到首頁。我沒有找到任何資源來知道視圖/端點是否正在使用修飾器login_required

回答

0

login_required裝飾器需要一個參數來重定向用戶。你可以使用這個。

從Django 1.9開始,你也可以使用AccessMixin

除非我誤解了你的問題,否則你需要的所有信息都在文檔中。你使用Django的舊版本嗎?

+0

我使用的是1.8,我想註銷相同的URL後重定向。如果這個特殊的URL需要身份驗證,那麼我將有一個無限循環,所以我需要重定向到'/'而不是 –

0

當然,僅僅使用查詢字符串參數next,例如:

<a href="{% url 'users:user_logout' %}?next={% url 'some_url' %}">Log out</a> 

剩下的只是安排模板層次的問題,所以你會使用不同的模板不同的網址,而不會重複。

+0

假設下一個url需要進行身份驗證。 Django將自動重定向到登錄,我將自動從我的提供者進行身份驗證,並返回到此URL。 URL中的下一個參數僅適用於目標頁面不需要認證的情況。 –

+0

然後添加中間件類,它檢查用戶是否嘗試訪問需要驗證的URL,如果條件不滿足,則重定向到主頁。 – Siegmeyer

+0

這與爲'LOGIN_URL'設置'/'是一樣的,我只是想在用戶訪問註銷頁面後避免這個重定向**。最好的解決方案是知道路徑是否需要登錄。 –

0

settings.py中加入這一行:

LOGOUT_REDIRECT_URL = 'some_url'