Php 会话重叠,2个用户以某种方式登录,系统将他们视为一个

Php 会话重叠,2个用户以某种方式登录,系统将他们视为一个,php,ruby-on-rails,session,memcached,single-sign-on,Php,Ruby On Rails,Session,Memcached,Single Sign On,我们的系统很少混合登录用户,我不知道为什么 以下是场景: 2个用户登录A和B通常每个用户都有自己的ID,在某个点上,其中一个用户A获取另一个用户B的ID并向网站投稿,就好像他是B一样 从技术上讲,这就是正在发生的事情: 1-2个用户登录:每个用户从运行在PHP上的Single Sign OnSSO服务器请求一个登录操作,并为每个用户创建一个会话。会话存储在Memcached-X中 2-用户具有不同的ID:每个用户将在web服务器上拥有另一个会话,该会话在Ruby RoR上运行,还将会话保存在Me

我们的系统很少混合登录用户,我不知道为什么

以下是场景: 2个用户登录A和B通常每个用户都有自己的ID,在某个点上,其中一个用户A获取另一个用户B的ID并向网站投稿,就好像他是B一样

从技术上讲,这就是正在发生的事情:

1-2个用户登录:每个用户从运行在PHP上的Single Sign OnSSO服务器请求一个登录操作,并为每个用户创建一个会话。会话存储在Memcached-X中

2-用户具有不同的ID:每个用户将在web服务器上拥有另一个会话,该会话在Ruby RoR上运行,还将会话保存在Memcached-Y上。对于他们在RoR上输入的每个页面,都有一个iFrame检查,该检查请求从用户浏览器到SSO的身份验证

3-在某个时刻,用户A变为B,B保持为B:SSO的日志文件显示用户A仍然是用户A,用户B仍然是用户B,而RoR的日志显示用户A变为B,因为它仍然具有相同的会话id。在那个特定时刻,我们检查了从RoR的memcached中出来的密钥,它们返回了正确的值

发生了什么事?SSO是否向RoR提供了错误的值,或者RoR是否将所有内容都混在一起,或者Memcached服务器是否出错

请帮帮我,我快没主意了。。。
谢谢。

在查询要使用哪个会话时,是否有某种时间检查?如果总是用户A变成用户B,我在这里假设用户A首先登录,然后可能在用户A查找会话信息并按时间排序的过程中的某个地方


听起来好像是在ROR和SSO之间的通信中,如果两个日志都在确认正确的用户ID/会话ID,那么当检查发生时,它必须介于两者之间?

事实证明,为ROR保存会话的memcached为两个不同的会话密钥保存相同的会话信息,要么是Ruby弄混了,要么是Memcached,我高度怀疑后者。

我不知道谁先登录,但他们都工作得很好,每个人都有自己的ID,大家都很高兴,检查也很好。在一个页面上,重新加载A将变成B。RoR日志清楚地显示A变成了B,因此有2个B用户使用2个不同的会话令牌!然后必须在RoR方面,可能有一个页面进行了某种会话管理,但不知怎么搞混了。在这种情况下似乎不是SOS