2013-03-01 156 views
2

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

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

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

如果可以工作,还可以使用其他替代方案来完成这项工作吗?

回答

3

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

最主要的是会话ID。这一切都依赖于此。您必须使这两个应用程序使用相同的会话存储,否则这是不可能的。

只要两个应用程序都使用它,将SessionId存储在数据库,文件(会非常慢)还是其他地方都没关系。

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

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

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


忘了提:这两个应用程序也必须使用相同的SESSION_ID名称的Cookie中;)

+0

OMG!这可能是我在找的!我会尝试一次机会。 – picardo 2013-03-01 01:00:53

+0

祝你好运。我从来没有做过这样的事情。 – 2013-03-01 01:01:31

相关问题