注销问题与facebook应用程序


logout problem with facebook application

<?php
require_once 'facebook.php';
$app_id = "";
$app_key = "";
$app_secret = "";
$canvas_url = "";
$facebook = new Facebook(array(
'appId'  => $app_id,
'secret' => $app_secret,
'cookie' => true,
'domain' => 'http://www.yeospace.com/2B10030/'
));

$session = $facebook->getSession();
if (!$session) {
    try{
        $url = $facebook->getLoginUrl(array(
        'req_perms' => 'publish_stream, user_photos, read_stream, read_friendlists, offline_access, manage_pages'
        ));
        echo "<script type='text/javascript'>top.location.href = '$url';</script>";
        }
        catch(FacebookApiException $e)
        {//catch
            echo "<br/>";
            echo "Error:" . print_r($e, true);   
        }//catch
    }//end if session user 
else
{
        $uid = $facebook->getUser();
        $me = $facebook->api('/me');
        //$updated = date("l, F j, Y", strtotime($me['updated_time']));
        echo "<img src='https://graph.facebook.com/".$uid."/picture'/>". "<br />" ;
        echo "Hello " . $me['name'] . "<br /><br /><br /><br />";
        //echo "You last updated your profile on " . $updated  . "<br />" ;

}//end else user

我有这个有登出问题的应用程序。上面的代码是config.php,其中每个其他页面将包含。"require_once config . php"当我注销用户A并登录用户B时,当我再次运行应用程序时,应用程序中的数据仍然是用户A。

无论如何,我可以强制清除数据,然后加载新的?即使这个config.php总是被加载,用户数据也没有被清除。你们能不能给我点建议,我怎么才能清除这个。我还不熟悉facebook的应用程序。谢谢你!

在这段代码中有两件事你不能做:

  1. 销毁用户的Facebook会话
  2. 销毁PHP会话

这就是为什么即使您切换了用户,也要保留前一个用户的状态。

在facebook文档中,他们建议使用:

Facebook::getLogoutUrl( $params=array() )

此方法返回一个URL,当用户单击该URL时,将注销他们的Facebook会话,然后将他们重定向到您的应用程序。

应该使用以下代码:

$params = array( 'next' => 'https://www.myapp.com/after_logout' );
$facebook->getLogoutUrl($params);

查看facebook sdk ref. doc: https://developers.facebook.com/docs/reference/php/facebook-getLogoutUrl/