0

私は非常に奇妙な問題に直面しています。私はほぼ 1 年前に Facebook iframe アプリケーションを開発しました。ユーザーセッションやその他の詳細にログインするためにfacebook-php-sdkを使用しています。最近、いくつかの変更を加えて、新しい facebook OAuth ベースの API を使用しました。しかし、ユーザーが Facebook からログアウトしても、私の iframe アプリは Facebook セッションにアクセスできます。この問題は IE でのみ再現可能です。

私は CodeIgniter フレームワークを使用しており、この投稿を参照しています。コード スニペットは次のとおりです。

$this->facebook = new Facebook(array( 'appId' => $this->appId, 'secret' => $this->secretKey, 'cookie' => true, ));
$this->session = $this->facebook->getSession();
var_dump($this->session);

出力では、ユーザーがログアウトした後でも有効なセッション値をすべて取得します。多くのことを試した後、新しい Facebook アプリケーションを作成し、URL を同じコードにポイントしました。コードを修正し、この新しい facebook アプリが提供する AppId、Appkey、AppSecret を使用しました。すべてが正常に動作するようになりました。

両方の Facebook アプリの設定はまったく同じです。唯一の変更点は、appURL とキーです。これは奇妙な動作であり、私にとって受け入れられる解決策ではありません。古い Facebook アプリを新しい Facebook API で動作させたい。なぜこれが起こっているのですか?何か案が?

4

1 に答える 1

1

私は同じ問題を抱えていました。これを修正するには、Facebook の Cookie (アクセス トークンを含む) を手動で破棄する必要がありました。

それで:

追加:
$_COOKIE["fbs_" . $this->appId] = null;
前:
$this->facebook = new Facebook(...

そのため、新しい facebook クラスを作成するたびに、最初に古いセッションから Cookie を破棄します。

于 2011-04-18T10:20:29.207 に答える