脸书在会话中存储登录详细信息


facebook storing login details in session

我有一个使用Facebook身份验证的网站。我已经通过以下代码实现了登录和注销功能-

$scope = 'email,publish_actions';
$loginUrl   = $facebook->getLoginUrl(array('scope' => $scope,'redirect_uri'=>$redirect_uri));
$logoutUrl = $facebook->getLogoutUrl(array('next' => $redirect_uri));

直到这里它工作正常。但是当我通过我的网站注销时,问题就开始了。发生以下情况-

  1. 我已退出我的脸书(通过刷新 www.facebook.com 验证(。
  2. 但是我的网站仍然说,我已登录。
  3. 另外,如果我通过facebook.com注销,我仍然登录我的网站,尽管两者都在同一个浏览器中。

我在StackOverflow中找到了一个帖子(我再也找不到了,对不起(,它说Facebook在会话中存储$facebook->getUser()的价值。所以我所做的是创建一个logout.php页面,只需遵循代码-

<?php
session_start();
session_destroy();
?>

这解决了问题,但我必须手动调用logout.php页面。那么如何将对logout.php的调用与对$logoutUrl的调用一起绑定,并将用户重定向到我的原始redirect_uri。或者,是否有其他方法可以完成整个过程。出于某种原因,我需要使用 PHP SDK。

在注销中.php试试这个

if ($facebook->getLogoutUrl() == TRUE) {
     session_start();
     $facebook->destroySession();
     session_destroy();
     header('location:Youruri'); 
    }