会话变量在OpenCart 1.5.3.1(PHP)中过于持久

时间:2012-10-25 07:26:25

标签: php opencart

我正在使用一个名为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); 

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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