ruby-on-rails - 如何创建一个跨多个应用程序使用的全局账户系统?

标签 ruby-on-rails ruby authentication

我目前正在开发几个应用程序,这些应用程序需要一个跨所有应用程序的全局帐户系统,我不确定执行此操作的最佳方式是什么。

最明显的选择是让每个应用程序连接到 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/

相关文章:

C#登录系统,在将密码插入数据库之前需要帮助散列密码

ruby-on-rails - 在没有 <%= 的情况下在 ERB 中打印?

ruby - 如何更改 Sinatra 中的日志级别

ruby-on-rails - Ruby on Rails : Using Refile Gem, 显示图像而不裁剪或扭曲图像

ruby-on-rails - 将变量传递到 block 中 - Rails

linux - 在 OpenSUSE 中登录后但在 X 之前运行脚本/应用程序

ruby-on-rails - rails3 中 cron 作业的解决方案

ruby-on-rails - 如何获取 options_from_collection_for_select 的多个字段

javascript - rails 5/6 : How to include JS functions with webpacker?

authentication - zookeeper sasl身份验证问题