在Rails和Symfony应用程序之间共享会话?

时间:2013-03-01 00:16:42

标签: ruby-on-rails session symfony session-cookies sessionid

我正在构建一个Rails应用程序,它将存在于Symfony 2应用程序(PHP)的子域中。它们将由相同类型的用户使用,因此我们希望它们在应用程序之间来回切换,理想情况下只需登录一次。

我见过some solutions关于如何在相同类型的应用程序的子域之间共享会话,但没有解决方案在Symfony和Rails之间共享会话。可能吗?

我特别感兴趣的是Rails session_store可以使用数据库后端 - 默认是cookie。这让我想知道两个应用程序是否都使用数据库后端,他们是否能够共享会话?

如果可行,还可以使用哪些其他替代方法来实现这项工作?

1 个答案:

答案 0 :(得分:3)

当然有可能,但我不知道你需要投入多少工作;)

主要是会话ID。这完全取决于那个。您必须使两个应用程序使用相同的会话存储,否则就不可能。

如果将SessionId存储在数据库,文件(速度很慢)或其他地方,只要两个应用程序都使用它就没关系。

正如您所提到的,Rails支持开箱即用的数据库内的会话。在Rails中还有另一种方式:Memchached Storage。它或多或少是一个自己的数据库,它针对快速键值查找进行了优化。

所以你应该看看是否有一个Symfony插件支持数据库或Memcache存储中的SessionId。

看看这里:http://watsonbox.github.com/blog/2012/05/01/sharing-session-between-rails-and-php/


忘记提及:两个应用程序还必须在cookie中使用相同的SESSION_ID名称;)