Rails在多个应用之间共享了Restful身份验证

时间:2010-02-17 17:40:05

标签: ruby-on-rails restful-authentication

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

2 个答案:

答案 0 :(得分:3)

所以我明白了。连接到用户数据库(如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'
    }

答案 1 :(得分:0)

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

Rails不处理多个数据库连接,所以你必须使用这样的hack:Multiple Database Connections in Ruby on Rails

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