Rails:是否可以在两个不同数据库的两个应用程序之间共享会话?

时间:2014-09-11 16:15:28

标签: ruby-on-rails ruby session devise session-cookies

我有Rails app 1 ,我希望 rails app 2 通过 Rails app 1 进行身份验证,我想知道这是否可能?< / p>

我在两个方面都使用了设计:

背后的原因是我有主网络应用程序,即应用程序1,然后是网络的节点,这是其他应用程序,我希望所有节点都能够通过主应用程序进行身份验证。< / p>

我已经使用主应用中的1个主用户表在每个应用上建立身份验证,但现在我只需要弄清楚如何分享会话。


我查看过以下问题,但他们是在同一个数据库中进行的,而不是跨应用程序:

Rails sessions current practices

Sharing session across rails apps on different subdomains

我想完全按照这个家伙的意思去做:


Rails authentication strategy for noob


Navigate to rails app -->
redirect unauthenticated users to SSO server -->
login and authenticate via remote SSO server -->
callback/redirect to rails app -->
capture user info passed back from SSO server and load protected resources in rails app

更新 我想我可以使用这个Rest-Client通过rails app 2上的rails app 1进行身份验证。不是吗?是吗?

1 个答案:

答案 0 :(得分:1)

也许其中一篇文章会对您有所帮助:

http://stderr.timfischbach.de/2013/09/14/rails-4-and-sinatra-session-sharing.html

http://robots.thoughtbot.com/how-to-share-a-session-between-sinatra-and-rails

他们描述了基于机架的应用程序(sinatra和rails)之间的会话共享,但它也适用于两个rails应用程序。

基本的身份验证中间件是Warden :: Manager,你应该只为这两个应用程序配备一个config.ru。

其他提示: 也许你可以使用一些其他会话商店而不是数据库,比如memcached,redis,couchbase或任何东西。