我目前正在开发几个应用程序,这些应用程序需要一个跨所有应用程序的全局帐户系统,我不确定执行此操作的最佳方式是什么。
最明显的选择是让每个应用程序连接到 1 个数据库,但这需要在所有应用程序之间复制 MVC 登录代码,这会使更新系统有些痛苦。
也许将登录系统拆分到自己的应用程序中,并让每个应用程序通过 API 进行身份验证?
任何想法都会受到赞赏。 谢谢!
最佳答案
即使您将登录拆分到一个单独的应用程序中,您仍然会有重复的登录代码,因为需要复制使用该 API 的表单和 Controller 。除非你使用一个公共(public)库来封装公共(public)功能。然后你需要更多的功能,花里胡哨的东西。如果您在这条道路上走得够久,您将只需重新实现自己的方轮 :)
相反,您可以只使用人们已经构建的东西。
到目前为止,最简单的方法是完全删除所有这些东西,只支持 openid。 就像计算器一样。与一些智能的 openid-from-provider-and-username 生成捆绑在一起(再次就像 stackoverflow 一样)这几乎可以容纳任何人,认为这需要更多的工作(但不多,生成规则应该非常简单)。
如果你真的需要标准的用户/密码登录表单并且只想要集中的用户数据库,你仍然可以在幕后使用 openid(客户端和服务器部分的实现参见 ruby-openid),或者只使用更简单的 CAS 解决方案(像 ruby-cas )
关于ruby-on-rails - 如何创建一个跨多个应用程序使用的全局账户系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1324521/