2

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

我已经看到了一些关于如何在相同类型的应用程序的子域之间共享会话的解决方案,但没有在 Symfony 和 Rails 之间共享会话的解决方案。是否可以?

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

如果可以的话,我可以使用哪些其他替代方法来完成这项工作?

4

1 回答 1

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 名称;)

于 2013-03-01T00:24:18.920 回答