2011-12-29 74 views
1

所以,这可能是一种愚蠢的问题,但我检查了Google并没有点击。我们希望以一种使它们看起来均匀的方式托管多个Rails应用程序。我们希望所有应用具有相同的外观和感觉,并且所有应用都使用相同的登录数据库。Rails通过Web服务进行身份验证

主题我认为我们可以通过将网站主题放入gem中,并在每个应用程序中从我们的github存储库请求该gem来实现。但是,auth更棘手。

我知道我可以通过不让网站的不同部分(商店,聊天论坛等)有不同的应用来实现这个“免费”。如果它们都是Rails引擎,我们可以基本上将它们放到同一个应用程序中,并使用它们自己的命名空间路线,并且拥有一个可以进行身份​​验证的插件。

但是,由于各种原因,如果技术上可行,我们希望保留这些单独的应用程序。首要原因是可扩展性;因为这将是一个托管网站,我们希望能够灵活地启动更多的商店实例(可能是为了应对假期促销),而无需启动聊天论坛。另外,我们希望能够完全隔离不相互交织的代码部分。在理想情况下,数据库也是分开的(使我们不再陷入“把所有东西都包括在厨房水槽里)”,但我确实知道用一种“便宜”的方式做跨应用程序auth只是使用相同的插件(比如Devise),并且指向同一个数据库。

所以,我想可能这样做的方法是通过Web服务调用进行认证。这是否是现有技术?是否有人为此提供了“正常工作”的宝石,以便可以在所有应用程序之间共享身份验证?或者,我正在试图通过这种方式建立事物而进入一个痛苦的世界?

在此先感谢!

回答

0

你可以做在描述上的做法单点登录:

http://blog.joshsoftware.com/2010/12/16/multiple-applications-with-devise-omniauth-and-single-sign-on/

与OAuth的,并制定方法的单点登录有一些缺点。我遇到的主要问题是我无法延长跨多个应用程序的超时时间。

+0

谢谢,我看着这个。它看起来像一个好主意,但代码仍然非常原始;当然不是在按钮和“走”的状态下,像安全一样重要。我们正在重新思考我们的应用程序架构,以确定多个应用程序是否真的是正确的选择。 – 2012-01-03 16:56:03

相关问题