【问题标题】:Facebook Logout with PHP and JS SDK使用 PHP 和 JS SDK 注销 Facebook
【发布时间】:2012-02-07 04:42:52
【问题描述】:

我有以下代码(正确添加了我的facebook.phpappIdappSecret 也是正确的):

 <?php

 define('APP_ID', 'XXX');

 $facebook = new Facebook(array(
     'appId'  => APP_ID,
     'secret' => 'XXX',
));

$userId = $facebook->getUser();

?>

 <html>
  <body>
 <div id="fb-root"></div>

<?php if ($userId) { 
  $userInfo = $facebook->api('/' + $userId); ?>
  Welcome <?= $userInfo['email'] ?> <fb:logout-button></fb:logout-button>

<?php } else { ?>
<div id="fb-root"></div>
<fb:login-button></fb:login-button>
<?php } ?>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '<?= APP_ID ?>',
      status     : true, 
      cookie     : true,
      xfbml      : true,
      oauth      : true,
    });

FB.logout(function()
{
    top.location.href = 'http://www.google.com'
});

  };

  (function(d){
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     d.getElementsByTagName('head')[0].appendChild(js);
   }(document));
</script>

我的代码总是输出 Welcom myemail@email.com。如何让它正确注销,以便我可以测试它以再次登录?

【问题讨论】:

    标签: php javascript facebook facebook-graph-api facebook-login


    【解决方案1】:

    删除 cookie、会话等。然后使用 facebook API 执行以下操作:

            $logoutUrl = $facebook->getLogoutUrl(array('next' => $_SERVER['HTTP_REFERER'], 'session_key' => $fb_session['session_key']));
    
            $fb_session = $facebook->setSession(null);
    
            header('Location:' . $logoutUrl);
    

    如果您希望用户返回特定页面,只需将“下一个”值更改为您希望他们返回的任何页面。

    【讨论】:

    • @chris:这对你有用吗?我问是因为没有 cmets。
    【解决方案2】:
    $fb_session = $facebook->setSession(null);
    

    @Somnath Muluk,这段代码似乎会清除会话,所以不仅fb应用程序会注销,facebook网站的登录状态也会被清除。

    但我认为 app-logout-option 只会让应用程序注销 fb。当我继续访问我的 fb 提要时,它应该可以正常工作,而无需让我再次执行登录选项

    【讨论】:

      猜你喜欢
      • 2012-03-06
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多