php - Facebook Connect 注销后,Facebook PHP 类仍然认为用户已登录

标签 php facebook

当用户首次点击我网站的登录屏幕时,我让 Facebook Connect 确定用户是否登录 Facebook,如果是,则重新加载页面:

<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 注销,但后端 Facebook PHP 对象仍认为用户已登录($Facebook->get_loggedin_user() 仍返回其用户 ID) ,所以我的登录代码会自动再次登录。

所以我发现的问题是,即使 Facebook Connect 将用户注销,后端 Facebook PHP 对象仍然认为用户已登录。有谁知道如何克服这个问题?我不能使用我的 PHP 代码自动登录用户吗?

感谢您的帮助!

最佳答案

我刚刚帮助了遇到类似问题的人。基本上,您需要使 facebook session 过期,然后清理 cookie(这有点棘手,并且在文档中没有很好地解释):

How to log out users using Facebook Connect in PHP and Zend?

如果有帮助的话请投票;)

关于php - Facebook Connect 注销后,Facebook PHP 类仍然认为用户已登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1615918/

相关文章:

php - Curl 在托管服务器上返回 false(已启用curl)

ios - Facebook App 中的 Graph API 与 iOS SDK

facebook - 带有 facebook 的 Ubuntu 桌面应用程序

php - 是否可以从dart访问php变量?

facebook - 如何查看我的 Facebook AccessToken?如何续订? (.NET 桌面应用程序)

javascript - 使用 drupal 8 中的 Nodejs 集成模块更新 block 中的文本

PHP PDO 返回空列名

php - 网站是通过IP地址而不是域名访问的?

Php mysql 事务未插入所有查询

android - Facebook 注销不适用于 Android [Facebook sdk 4]