Min*_*iel 9 php facebook facebook-graph-api facebook-php-sdk
我正在使用facebook登录我的网站facebook php sdk.
我注意到的是logout链接没有做任何事情.在我注销后,用户仍然可以浏览该站点.这是我的代码facebook.php:
<?php
require 'src/facebook.php';
$facebook = new Facebook(array(
'appId' => '*************',
'secret' => '******************************',
));
$user = $facebook->getUser();
$loginUrl = $facebook->getLoginUrl();
echo "<a href='$loginUrl'>login</a>";
$logoutUrl = $facebook->getLogoutUrl();
echo $loginUrl;
if($user){
session_start() ;
$_SESSION['user_info'] = $user;
$_SESSION['user_pro']= $facebook->api('/me');
print_r($_SESSION);
}
else{
echo 'not logged in ';
}
echo "<a href='example.com/logout.php'>log out </a>"
?>
Run Code Online (Sandbox Code Playgroud)
这code在登录时工作正常.注销链接应该销毁会话.这是页面的标题:
<?php
print_r($_SESSION) ;
header('example.com') ;
?>
Run Code Online (Sandbox Code Playgroud)
我的logout.php页面的问题是它根本检测不到会话.我不知道这是一个facebook api问题还是我的php问题.
如何使用facebook SDK登录用户?
小智 19
您可以从您的站点以及Facebook注销,如下所示,将您的站点URL提供给下一个参数并销毁会话
$token = $facebook->getAccessToken();
$url = 'https://www.facebook.com/logout.php?next=' . YOUR_SITE_URL .
'&access_token='.$token;
session_destroy();
header('Location: '.$url);
Run Code Online (Sandbox Code Playgroud)
您还必须将它们从您的网站注销,并且您必须阻止您的网站自动记住您的用户并立即重新登录.
禁用在用户中自动登录的代码并尝试再次注销.销毁会话不会阻止您的网站为记住的用户创建全新的有效会话.