在Ruby和PHP之间共享会话

是否可以在子域上的PHP应用程序和我的其他子域上的Ruby应用程序之间共享会话?

我真的不知道从哪里拿这个。 我知道我可以手动将域设置为根域,以便cookie对所有子域都有效,但是我如何从/向会话获取/设置内容以便它在子域之间共享?

我主要想用它来共享我的整个子域名的登录。

为了知识,如果这是一个错误的方法来解决问题,尽管是一个可行的方法,我想知道如何做到这一点,为什么我不应该。

谢谢你们!

如果要以这种方式共享会话(跨越PHP / Java / Ruby / etc),则需要从数据库中保存会话(并访问它们)。

请参阅: http : //php.net/manual/en/function.session-set-save-handler.php

你需要在Ruby中使用相同的方法。

要跨域共享cookie,还需要将session.cookie_domain的PHP会话配置选项从默认的"" (插入您的域名)更改为: ".yourhost.com" (请注意前缀时间段)。

这可以通过共享相同数据库的应用程序和一些cookie的帮助来解决。

  • 会话在php中打开
    • 在其中创建一个包含随机字符串的cookie
    • 使用用户凭据和时间戳将字符串保存在数据库中
  • 会话转发到rails
    • 检查cookie是否存在
    • 以cookieforms搜索数据库中的字符串
    • 如果找到匹配,则接受会话并且可以使用相同的用户凭证

存储工作站或浏览器的某种独特信息是明智的,这样就可以通过复制cookie来窃取会话。