我正在经历一种非常奇怪的行为。我使用CakePHP构建了我的应用程序,并使用了Nick Baker的Facebook插件。
当我登录时,一切正常。当其他人登录时,一切正常。但如果有人在我登录的同时登录,则会在Auth中为该用户记住正确的用户ID,但Facebook数据来自我的帐户。
因此,如果我有用户ID 1并且John具有用户ID 2并且我们每个人同时登录应用程序,则正确的ID存储在Auth组件(1,分别为2)中。但如果我访问一个显示相应配置文件数据的页面,我会看到我的图片和我的Facebook数据,但John也会看到我的图片和我的数据,而不是他的。
为什么会这样?我真的需要帮助,因为它超出了我的理解。
非常感谢!
答案 0 :(得分:0)
您是否启用了缓存? Web服务器可能会将该页面的缓存版本提供给其他用户。
答案 1 :(得分:0)
我遇到了类似的问题,我认为这是由于access_token
被保存在用户会话中。由于Facebook和我的应用程序驻留在不同的域中,因此当用户从Facebook注销时,应用程序会话不会被销毁。我通过调用控制器的$this->Session->delete('FB');
中的beforeFilter
暂时解决了这个问题,如下所示:
public function beforeFilter() {
parent::beforeFilter();
$this->Session->delete('FB');
}
我认为这使得插件请求在每个请求上都是新的access_token
,这不是最佳的但是有效。如果我错了,请纠正我。