1

我正在使用一个名为 FB JS Connect 的模块(一个免费扩展,我现在似乎无法在 Extensions 中找到它。)它所做的只是允许用户使用他们的 Facebook ID 登录。

它工作得很好,并使用 FB API。

问题是,用户使用 FB Connect 按钮登录 OC,执行操作,然后注销。另一个用户登录(不使用 FB Connect 按钮),之前用户的 FB 信息仍在 $_SESSION 中!

下面列出了 $_SESSION 中持续存在的 4 个变量,直到新的 FB 用户登录:

  • fb__state
  • fb__user_id
  • fb__code
  • fb__access_token

我不敢在没有专家建议的情况下在代码中乱搞来“修复”这个问题,因为它可能会破坏很多东西。

我想我需要手动清除它。

我尝试将以下内容放在 index.php 中,似乎 $session = new Session(); 用户登录时多次调用 index.php 中的内容。

// Session
$session = new Session();

unset($session->data['fb_<FBAppId>_state']);
unset($session->data['fb_<FBAppId>_code']);
unset($session->data['fb_<FBAppId>_user_id']);
unset($session->data['fb_<FBAppId>_access_token']);

$registry->set('session', $session); 

处理这个问题的最佳方法是什么?

4

2 回答 2

0

将上面的“未设置”代码放入 logout.php 中,这将修复它。

于 2012-10-26T09:19:59.613 回答
0

我也遇到了这个特定扩展的问题,并且在 OC 扩展存储库中也找不到它了。我的建议是使用另一个扩展:http ://www.opencart.com/index.php?route=extension/extension/info&extension_id=3333

于 2012-11-07T00:08:24.977 回答