0

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

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

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

  1. 我退出了我的 facebook(通过刷新 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。

4

1 回答 1

2

在你的 logout.php 中试试这个

if ($facebook->getLogoutUrl() == TRUE) {
     session_start();
     $facebook->destroySession();
     session_destroy();
     header('location:Youruri'); 
    }
于 2013-10-09T06:09:10.320 回答