1

私は FB JS Connect と呼ばれるモジュールを使用しています (無料の拡張機能で、現在は拡張機能で見つけることができないようです)。ユーザーが Facebook ID を使用してログインできるようにするだけです。

それはかなりうまく機能し、FB API を使用します。

問題は、ユーザーが FB Connect ボタンを使用して OC にログインし、何かを行ってからログアウトすることです。別のユーザーが (FB 接続ボタンを使用せずに) ログインし、前のユーザーの FB 情報がまだ $_SESSION にあります。

新しい FB ユーザーがログインするまで、$_SESSION に保持される 4 つの変数を以下に示します。

  • fb__state
  • fb__user_id
  • fb__コード
  • 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 に答える