【问题标题】:Rails shared restful authentication between multiple appsRails 在多个应用程序之间共享 RESTful 身份验证
【发布时间】:2011-01-17 23:42:44
【问题描述】:

我正在创建一个 Rails 应用程序,它将与旧应用程序在同一个域上运行。我希望能够使用旧应用程序的宁静登录功能来验证新应用程序的用户。理想情况下,用户可以登录旧应用程序,然后访问新应用程序。我为每个应用程序运行两个 mongrel 实例。非常感谢任何帮助

【问题讨论】:

    标签: ruby-on-rails restful-authentication


    【解决方案1】:

    所以我想通了。连接到用户数据库(如 lolindrath 建议的那样)以允许较新的应用程序访问用户数据库使我们成功了一半。用户现在可以像旧应用程序一样使用 restful 登录到较新的应用程序,但身份验证不会从一个应用程序转移到另一个应用程序。要允许单次登录对两个应用程序都有效,您必须将 cookie 会话数据从旧应用程序复制到新应用程序。

    因此,在 ./config/initializers/sessiont_store.rb 文件中,将以下数据从旧应用程序粘贴到新应用程序(旧版本的 rails 在 ./config/environment.rb 文件中包含它):

    ActionController::Base.session = {
        :domain      => '.localhost.com',
        :session_key => '_Project_name_session',
        :secret      => '09808ajdsfkljdfwu309jas3longerkey'
        }
    

    【讨论】:

      【解决方案2】:

      如果您使用相同版本的身份验证插件,则可以使用不同的数据库进行身份验证。

      Rails 不能处理多个数据库连接,因此您必须使用这样的 hack:Multiple Database Connections in Ruby on Rails。

      然后安装与旧应用程序完全相同的插件,以便它使用相同的数据库架构。然后在 User 模型中将数据库连接切换到旧数据库。

      【讨论】:

      • 谢谢 lolindrath。此设置是否允许应用程序之间共享会话,这样如果用户登录旧应用程序然后单击指向新应用程序的链接,他们就不必再次登录?我的印象是这种设置将允许对同一个数据库进行身份验证,但不允许跨应用共享会话。
      猜你喜欢
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      • 2018-01-28
      相关资源
      最近更新 更多