2009-08-24 33 views
1

我正在開發幾個應用程序,這將需要跨所有應用程序的全球賬戶系統,我不確定要做這件事的最佳方式是什麼。如何創建跨多個應用程序使用的全局帳戶系統?

最明顯的選擇是讓每個應用程序連接到1個數據庫,但這需要在所有應用程序中重複MVC登錄代碼,這會使系統更新有點痛苦。

也許將登錄系統分成自己的應用程序,並讓每個應用程序通過API進行身份驗證?

任何想法表示讚賞。 謝謝!

回答

4

即使您將登錄名拆分爲單獨的應用程序,仍然會有重複的登錄代碼,因爲使用api的表單和控制器需要重複。除非你使用公共庫來封裝通用功能。那麼你需要更多的功能,花裏胡哨。如果你在這條路上走的足夠長,你只需重新實現你自己的方形輪:)

相反,你可以使用人已經建立的東西。

到目前爲止,最簡單的方法是完全刪除所有這些東西,只支持openid。 就像stackoverflow。捆綁了一些聰明的openid-from-provider-and-username代(再次就像stackoverflow),這幾乎可以容納任何人,認爲這需要多一點工作(但不是太多,生成規則應該非常簡單)。

如果你真的需要標準的用戶名/密碼登錄表單,只想集中的用戶數據庫,你仍然可以使用OpenID的幕後(見ruby-openid爲客戶端和服務器部分實現),或只使用一個簡單的CAS解決方案(如ruby-cas

1

最好的辦法是使用經過驗證的真實身份驗證系統,例如LDAP。您可以使用Authlogic作爲基本身份驗證系統,並使用Authlogic LDAP Addon插件。

如果你想要一個Authlogic如何工作的例子,你可以看到一個here

2

rubycas-server是另一種選項,它允許您使用單一登錄頁面來驗證跨多個應用程序的用戶身份。

相關問題