2009-04-25 50 views
0

我想使用WSGI,Python自己編寫一個簡單的Web框架。我正在學習以瞭解授權系統。在Web框架中處理授權

該系統需要更加模塊化和抽象,足以將新系統作爲插件添加到項目中。用戶可以使用數據庫或分佈式鍵/值對,bigtable等來存儲他們的信息。可以說,這些東西是容器或提供者,可以作爲插件寫入系統。

我想爲登錄的用戶定義更高級別的IDENTITY。「Identity」是許多框架使用的正確詞彙。但由於其複雜的性質,將「身份」定義爲對象是非常困難的。它可能包含任何特定於應用程序的內容。但是,當我們編寫應用程序時,應用程序應該小心,身份是什麼。但作爲一個框架,它並不關心什麼是身份。

認證應與授權分開。

用戶,組,角色/權限可以設計爲插件。這個概念背後的想法是,爲插件編寫一個很好的框架(至少爲我的研究),並允許應用程序開發人員編寫適用於應用程序的可移植代碼。

是否可以在整個框架中使用「身份」對象?

回答

0

「可以在整個框架中使用」身份「對象嗎?」

「但它是真的很難定義‘身份’爲對象,由於其複雜性。」

直到你定義的身份,是的,這是很難的工作。

身份必須明確指定。留下它如此含糊以至於「它可能包含任何東西,這是特定於應用程序」意味着你永遠無法開始寫任何有用的東西,因爲你太擔心「有一天某人可能會發明一個你無法處理的身份概念」。

別擔心。身份定義明確,並不複雜。 HTTP和其他協議使用用戶名,密碼和領域定義「授權」(真正的認證)。這就是你真正需要的。

做一下Django的工作:允許某人添加一個關於該人的更多事實的「個人資料」。配置文件不是識別和認證的核心。這不是授權的核心。但任何人都可以爲其特定應用程序添加「配置文件」內容。

不要寫一個模型來完成一切。

寫一個模型,可以工作,並可以添加到。