Facebook Connect не очищает сессионный cookie при выходе - PullRequest
6 голосов
/ 29 ноября 2010

Я делаю некоторую интеграцию с Facebook в проекте (используя graph api), и все до сих пор работало нормально. Я обнаружил, что Facebook не очищает мою сессию, когда я нажимаю на ссылку выхода из системы.Я делаю выход через php, а не через javascript, поэтому URL выхода выглядит так:

https://www.facebook.com/logout.php?next=url&access_token=token

После нажатия на эту ссылку пользователь вышел из Facebook, но сеанс все еще существует на моем сайте.Чтобы на самом деле очистить сеанс, я должен обновить страницу еще раз после нажатия на этот URL.На мой взгляд, это странное поведение.

Что вы, ребята, думаете об этом?Я пытался даже лично удалить cookie-файл facebook, но он все еще там, и он очищается только после того, как я нажал кнопку обновления в моем браузере.

ps, чтобы получить сеанс facebook, я делаю что-то вроде этого:

My_Facebook_Helper::instance()->getSession(); //it should be === null if it doesn't exist

pps это может быть ошибка?я не помню, чтобы у меня была эта проблема около недели назад, когда я впервые начал реализовывать это

Ответы [ 5 ]

1 голос
/ 25 октября 2011

Попробуйте найти функцию formatData где-нибудь в LoginWindow (AS3) и найдите эту строку:

vars.redirect_uri = FacebookURLDefaults.LOGIN_SUCCESS_URL

Измените значение для 'http://www.facebook.com/' и выйдите из этой HTML-страницы при входе в систему.

Это временное решение для выхода из системы, если вы разработчик, а не конечный пользователь.

1 голос
/ 18 января 2011

Я столкнулся с этой ошибкой и понял, что сессия не была очищена, но если у вас есть доступ в автономном режиме, он автоматически получит вам новый сеанс.

0 голосов
/ 25 сентября 2011

Это зарегистрировано как ошибка. Пожалуйста, добавьте свое собственное repro к этой ошибке, чтобы исправить ее

http://developers.facebook.com/bugs/250825644953332

0 голосов
/ 10 января 2011

Я пробовал это

$logoutUrl = $facebook->getLogoutUrl(array('next' => 'some url', 'session_key' => $session_key)) . 'session_key=null';
0 голосов
/ 29 ноября 2010

Я только что решил симуляционную проблему сегодня. Попробуйте использовать это, чтобы получить ваш сеанс:

$session = $facebook->getSession();

И это также может помочь при выходе из системы:

$logoutUrl = $facebook->getLogoutUrl(array('next' => $url, 'session_key' => $session['session_key']));

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...