2011-03-03 89 views
2

我成功獲得了django_openid_auth在我的django項目中工作,現在可以使用我的Google帳戶登錄。我無法弄清楚的是如何註銷。標準django.contrib.auth.views.logout視圖將註銷用戶,但隨後訪問需要身份驗證的頁面將在沒有提示的情況下再次對用戶進行身份驗證。我怎樣才能完全註銷用戶?使用django和django_openid_auth註銷

回答

1

OpenId的目的之一是簡化登錄過程。 您所遇到的行爲絕對正確。您第一次使用Google帳戶登錄應用程序時,您允許OpenId提供商(Google)向您的應用程序發送數據。 由於數據仍在數據庫中,因此不必再次提示是否允許訪問。

但是,如果您想再次提示您應該手動清除數據庫中的數據。您可以通過創建自定義視圖註銷或使用信號的基礎設施和增加做如下:

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

值得一提的是,user_logged_out可因爲Django的1.3