我正在构建一个Rails应用程序,它将存在于Symfony 2应用程序(PHP)的子域中。它们将由相同类型的用户使用,因此我们希望它们在应用程序之间来回切换,理想情况下只需登录一次。
我见过some solutions关于如何在相同类型的应用程序的子域之间共享会话,但没有解决方案在Symfony和Rails之间共享会话。可能吗?
我特别感兴趣的是Rails session_store可以使用数据库后端 - 默认是cookie。这让我想知道两个应用程序是否都使用数据库后端,他们是否能够共享会话?
如果可行,还可以使用哪些其他替代方法来实现这项工作?
答案 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名称;)