我必须开发跨域的单点登录多站点应用程序(例如谷歌帐户,如gmail,docs,google +等多种谷歌服务):
在Rails 3.1上实现此功能的最佳策略是什么?可扩展性,性能和安全性非常重要。
答案 0 :(得分:5)
你应该能够使用OmniAuth和多个(和独立的)Rails应用程序来实现这一点。这些将是有趣的:
答案 1 :(得分:-1)
因此,假设您在主应用程序中创建模型User
并进行迁移。然后,您需要做的是从其他应用程序访问此数据库。那没问题。首先,您需要将主应用程序的数据库连接定义添加到子应用程序的config/database.yml
,如下所示:
parent_connection:
adapter: your_adapter_here
host: your_host_here
username: username
password: password
database: main_application_production
然后使用scaffolder或sth创建一个名为User的模型,但 not 。像这样。只需手动创建文件:
class User < ActiveRecord::Base
establish_connection :parent_connection # This uses the specified connection
end
在默认情况下,所选连接是与环境名称匹配的连接。您只需指定变体。现在,您可以像在主应用程序中一样访问User
类。