2010-11-01 63 views
0

我在自制Python框架中有一個很大的代碼庫。我將逐漸將代碼移到Django,但同時需要支持通過舊系統登錄。舊系統使用Cookie在用戶登錄後識別用戶。使用Django與傳統認證cookies

我不希望用戶通過Django登錄,但我確實希望能夠使用@login_required以及依賴於多個應用程序在Django的認證系統上,比如admin,django-tagging和django-comments。

集成兩個認證系統的最佳方式是什麼?兩個代碼庫都在同一個python進程中運行(通過一個wsgi中間件,每個應用程序都可以切換應用程序),並且可以根據需要相互加載模塊。

回答

2

最簡單的方法是使用Django中的自定義身份驗證中間件。

有幾個例子認證中間件的在Django:http://code.djangoproject.com/browser/django/trunk/django/contrib/auth/middleware.py

+0

但是如果是關閉的,現成的應用程序,如Django的標記支持?那些期望request.user的行爲就像一個django用戶模型。 – GDorn 2010-11-01 19:37:21

+0

@GDorn:爲了使它與Django的其他部分兼容,你的中間件應該把'request.user'設置爲Django中的一個有效用戶。讓中間件從遺留認證系統讀取cookie,並讓它在'request.user'中存儲'User'對象 – Wolph 2010-11-01 21:11:04