Php 在不同应用程序平台之间共享会话

Php 在不同应用程序平台之间共享会话,php,django,ruby-on-rails-3,session,Php,Django,Ruby On Rails 3,Session,我有一个想法,想听听你们的意见 我用Django、Rails和PHP开发了不同的web应用程序,我希望它们每次都共享相同的会话数据。意味着如果用户登录到PHP应用程序,则可以自动登录到Rails应用程序,反之亦然 我知道它是某种中央身份验证服务器。其中一些是 你们对此有什么看法。我想要像谷歌应用程序一样的行为,当我登录到Gmail时,我也可以自动登录到谷歌文档 请分享您的想法,即如何实现此场景?在我的应用程序中,我使用会话存储登录用户的值。例如,$\u会话['site1']['bakcend']

我有一个想法,想听听你们的意见

我用Django、Rails和PHP开发了不同的web应用程序,我希望它们每次都共享相同的会话数据。意味着如果用户登录到PHP应用程序,则可以自动登录到Rails应用程序,反之亦然

我知道它是某种中央身份验证服务器。其中一些是

你们对此有什么看法。我想要像谷歌应用程序一样的行为,当我登录到Gmail时,我也可以自动登录到谷歌文档


请分享您的想法,即如何实现此场景?

在我的应用程序中,我使用
会话
存储登录用户的值。例如,
$\u会话['site1']['bakcend']['loggedin']=1然后将会话检查放在其他位置。当然,如果您使用上述示例,它们都在相同的
域下.tld
$\u SESSION['site1']['bakcend']['loggedin']=1如果有许多部分,则需要进行大量检查。但这只是一种观点,有一个更大的灵活性


您也可以使用cookies。

在PHP中,您可以使用来指定会话的持久化和恢复方式。我想Django和Ruby On Rails提供了类似的方法,Google完全是在.Google.com域之外运行的,这就是为什么他们使用一个cookie在应用程序中识别您绝对没有问题的原因。如果您的应用程序都在同一个域上运行,我建议您继续编写一个自定义实现,使用共享会话cookie授权用户

但是,如果情况并非如此,则最好在应用程序中单独或类似地实施一种更流行、更广泛的SSO方法,或者为用户提供一个集中的应用程序进行身份验证,或者让他们通过外部提供商进行身份验证(如Facebook或谷歌,它支持通过OpenID进行身份验证)


您可以运行自己的OAuth或OpenID端点,用户在该端点注册,然后通过该端点在任何应用程序上进行身份验证。

只需将会话存储在db中,或者完全自己处理它们

最好的方法是为此创建一个特殊的表 请注意,php希望将此数据存储为sialized,因此在将其存储到appropiate字段之前请先取消序列化,因为序列化数据太难处理

在php中,您有 美元会议 和() 但我认为你自己做更好


确保所有站点使用一个cookie域(ajax onload(尝试获取此cookie)或保留同一个域)

$\u会话仅为php,需要处理。如果您删除否决票,我将不胜感激。我也将cookie添加为选项:)在本资料中使用Cookie不安全我以前没有测试过,但可能您可以将会话变量存储为XML文件格式,然后在应用程序中共享该文件。这里的问题是,每个框架或语言实现会话的方式不同(不同的后端、在后端保存会话的方式等等)。找到一个适用于所有这些问题的解决方案可能有点过头了。我目前正在使用rubycas服务器来实现我的场景,我的工作正在进行中,因为它的成功将更新答案。