通过Web服务进行Rails身份验证

时间:2011-12-29 17:21:14

标签: ruby-on-rails ruby authentication

所以,这可能是一个愚蠢的问题,但我检查了谷歌并没有得到任何打击。我们希望以一种使它们看起来同质的方式托管多个Rails应用程序。我们希望所有应用都具有相同的外观和感觉,并且所有应用都使用相同的登录数据库。

主题我认为我们可以通过将网站主题放入gem中来完成,并且需要每个应用程序中我们的github存储库中的gem。但是,auth比较棘手。

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

但是,出于各种原因,我们希望保留这些单独的应用程序,如果技术上可行的话。首要原因是可扩展性;由于这将是一个托管网站,我们希望能够灵活地启动商店的更多实例(可能是为了处理假日促销),而无需启动聊天论坛。此外,我们希望能够完全隔离未交织的代码部分。

理想情况下,数据库也是分开的(让我们不再陷入“将所有内容包括厨房接收器放入数据库中”),但我确实知道一种“便宜”的方式来做跨应用程序验证只是使用相同的插件(例如,Devise),并指向同一个DB。

所以,我想也许这样做的方法是通过网络服务电话进行身份验证。这是现有技术吗?有没有人为此创建一个“正常工作”的宝石,以便可以在所有应用程序之间共享身份验证?或者我只是通过尝试以这种方式构建东西来进入一个痛苦的世界?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以执行以下所述的单点登录:

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

使用oauth和devise进行单点登录有一些缺点。我遇到的主要问题是我无法延长多个应用程序的超时时间。