私は 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);
これを処理する最良の方法は何ですか?