如何创建全局帐户系统以在多个应用程序中使用?

时间:2009-08-24 20:20:34

标签: ruby-on-rails ruby login

我目前正在开发多个应用程序,这需要在所有应用程序中使用全局帐户系统,而且我不确定这样做的最佳方式是什么。

最明显的选择是让每个应用程序连接到1个数据库,但这需要在所有应用程序中复制MVC登录代码,这会使系统更新有点痛苦。

或许将登录系统拆分为自己的应用程序并让每个应用程序通过API进行身份验证?

任何想法都表示赞赏。 谢谢!

3 个答案:

答案 0 :(得分:4)

即使您将登录分成单独的应用程序,您仍然会有重复的登录代码,因为需要复制使用api的表单和控制器。除非您使用公共库来封装常用功能。然后你需要更多功能,铃声和口哨声。如果你走这条路的时间足够长,你就会重新实现自己的方形轮:)

相反,你可以使用人们已经建立的东西。

到目前为止,最简单的方法是完全删除所有这些东西,只支持openid。 就像stackoverflow一样。捆绑了一些智能openid-from-provider和用户名生成(再次就像stackoverflow)这几乎可以容纳任何人,认为这需要更多的工作(但不是很多,生成规则应该非常简单)。

如果您确实需要标准用户/密码登录表单并且只想要集中式用户数据库,您仍然可以在幕后使用openid(请参阅ruby-openid了解客户端和服务器部件实现),或者只使用更简单的CAS解决方案(如ruby-cas

答案 1 :(得分:2)

rubycas-server是另一种选项,可让您使用单一登录页面来验证多个应用中的用户。

答案 2 :(得分:1)

您最好的选择是使用经过验证的真实身份验证系统,例如LDAP。您可以使用Authlogic作为基本身份验证系统,使用Authlogic LDAP Addon插件。

如果您想了解Authlogic如何工作的示例,您可以看到一个here