我有一个使用Facebook身份验证的网站。我已经通过以下代码实现了登录和注销功能-
$scope = 'email,publish_actions';
$loginUrl = $facebook->getLoginUrl(array('scope' => $scope,'redirect_uri'=>$redirect_uri));
$logoutUrl = $facebook->getLogoutUrl(array('next' => $redirect_uri));
直到这里它工作正常。但是当我通过我的网站注销时,问题就开始了。发生以下情况-
- 我已退出我的脸书(通过刷新 www.facebook.com 验证(。
- 但是我的网站仍然说,我已登录。
- 另外,如果我通过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');
}