我正在使用一个名为 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);
处理这个问题的最佳方法是什么?