我正在尝试在流程上创建单一登录。我已经实现的方法使用将会话数据存储在数据库中。PHP单点登录(SSO)生成新会话ID
当新用户访问网站(www.example2.com)时,会检查认证表。由于这是他们第一次访问该网站,因此不会有任何匹配。
浏览器被重定向到认证服务器www.example1.com/authenticate.php?session_id=ABC123其中ABC123表示在www.example2.com上创建的会话ID。随后在www.example1.com上生成的会话ID将使用URL中设置的参数存储在会话ID旁边。
然后用户被重定向回www.example2.com并找到会话id的匹配。
这个在FireFox中工作正常,但是当我在Chrome中尝试时,我注意到浏览器被重定向回www.example2.com时生成的会话标识是一个新的会话标识。结果创建了一个无限循环。这种行为在FireFox中也没有表现出来。
什么是导致生成新的会话ID?更重要的是,我能做些什么来阻止它?
提前致谢!
编辑
我有一个逻辑错误导致无限循环。这现在在FireFox中再次正常工作,但Chrome和Internet Explorer仍然出现无限循环。
你是如何解决这个问题的?我遇到了与Chrome和会话ID相同的问题。 – Lancelot 2011-05-05 18:41:11
是的,如果你会分享你的解决方案 – soupdiver 2012-04-24 15:10:44