Сессия не аннулируется в старом приложении iframe на Facebook - PullRequest
0 голосов
/ 10 января 2011

У меня очень странная проблема.Я разработал приложение iframe для Facebook почти год назад.Я использую facebook-php-sdk для входа в пользовательскую сессию и другие детали.Недавно я внес некоторые изменения и использовал новый API на основе OAuth в Facebook.Но теперь я сталкиваюсь с проблемой: когда пользователь выходит из 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-адреса на тот же код.Я изменил код и использовал AppId, Appkey и AppSecret, предоставленные этим новым приложением facebook.Теперь все отлично работает.

Настройки в обоих приложениях Facebook абсолютно одинаковы.Единственное изменение - appURL и ключи.Это странное поведение и не приемлемое для меня решение.Я хочу, чтобы мое старое приложение на Facebook работало с новым API Facebook.почему это происходит?Есть идеи?

1 Ответ

1 голос
/ 18 апреля 2011

У меня была такая же проблема, и для ее устранения мне пришлось вручную уничтожить cookie-файл facebook (который содержит токен доступа)

SO:

add:
$ _COOKIE ["fbs_".$ this-> appId] = null;
before:
$ this-> facebook = new Facebook (...

, поэтому каждый раз, когда он создает новый класс facebook, он уничтожает кукисначала старая сессия.

...