在不同的应用程序平台之间共享会话
我有一个场景,希望你的观点。在不同的应用程序平台之间共享会话
我在Django,Rails,PHP中开发了不同的Web应用程序,我希望他们每次都能共享相同的会话数据。意思是如果使用登录到PHP应用程序,它可以自动登录到Rails应用程序,反之亦然。
我知道它的某种中央认证服务器。其中一些是cas,josso。
你有什么意见呢。我想要Google Apps这样的行为,当我登录到Gmail时,我也可以自动登录到GoogleDocs。
请分享您的想法,那如何实现这个场景?
在我的应用程序中,我使用SESSION
来存储登录用户的值。例如$_SESSION['site1']['bakcend']['loggedin']=1;
比在其他地方进行会话检查。他们当然都在同一domain.tld
如果你使用上面的例子$_SESSION['site1']['bakcend']['loggedin']=1;
如果你有很多部分,你将需要很多检查。但这只是一个意见,有一个更大的灵活性的地方。
您也可以使用cookie。
$ _SESSION是唯一的PHP,需要handeling – borrel 2011-05-27 08:55:06
如果您删除downvote,我将不胜感激。我也添加了cookies作为选项:) – RRStoyanov 2011-05-27 08:56:01
在这个mater中使用cookies不安全 – borrel 2011-05-27 12:20:25
只是存储在数据库矿石会议自己处理他们完全
,最好的方法是创建一个特殊的表这 小心为PHP希望在此时,相应的存储之前,存储这些数据sialized所以反序列化字段作为序列化的数据实在是太难了在PHP处理
你有 $ _SESSION 和session_set_save_handler() ,但我认为这是更好地为您自己使它
确保所有网站使用单个cookie域(ajax onload(试图获得此coockie),或保持相同的域)
我没有测试过,但可能会存储会话变量的XML文件格式和然后在您的应用程序中共享该文件。 – SIFE 2011-05-27 09:20:54
这里的问题是,每个框架或语言都以不同的方式实现会话(不同的后端,将其保存在后端等方式)。找到适用于它们的解决方案可能有点矫枉过正。 – 2011-05-27 09:34:05
我目前使用rubycas-server来实现我的场景,我的工作正在进行,因为它会成功更新答案。 – 2011-05-30 23:04:27