Когда пользователь впервые заходит на экран входа в систему моего сайта, у меня Facebook Connect определяет, вошел ли пользователь в Facebook и перезагрузит страницу, если true:
<script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>
<script type="text/javascript">
FB.init('MY_API_KEY', '/xd_receiver.htm', { 'reloadIfSessionStateChanged': true });
</script>
Когда страница перезагружается, мой бэкэнд-код PHP проверяет, вошел ли пользователь в Facebook, а затем автоматически регистрирует его на моем сайте:
$Facebook = new Facebook(MY_API_KEY, MY_APP_SECRET);
if ($Facebook->get_loggedin_user()) {
// Log the user in.
}
Эта часть отлично работает. Проблема в функциональности выхода из системы. Моя ссылка для выхода из системы выглядит сейчас так:
<a href="#" onclick="FB.Connect.logoutAndRedirect('http://my.url/logout/');">Log Out</a>
При щелчке пользователь успешно вышел из Facebook, но внутренний PHP-объект Facebook по-прежнему считает, что пользователь вошел в систему ($Facebook->get_loggedin_user()
по-прежнему возвращает его идентификатор пользователя), поэтому мой код входа в систему затем снова автоматически регистрирует его .
Итак, проблема, с которой я сталкиваюсь, заключается в том, что, несмотря на то, что Facebook Connect выводит пользователя из системы, бэкэнд PHP-объекта Facebook по-прежнему считает, что пользователь вошел в систему. Кто-нибудь знает, как это преодолеть? Могу ли я не войти в систему автоматически с помощью моего кода PHP?
Спасибо за любую помощь!