2013-05-27 90 views
0

我一直在使用Laravel上的facebook SDK遇到一些問題。退出登錄LARAVEL後仍然獲得Facebook用戶ID

這是我的代碼:

public function get_index() { 
    $facebook = IoC::resolve('facebook-sdk'); 

    try { 
     $fb_id = $facebook->getUser(); 
     if ($fb_id) { 
      $token = array(
       'access_token' => $facebook->getAccessToken() 
      ); 
      $fb_data = $facebook->api('/'.$fb_id.'?', $token); 
      print_r($fb_data); 
     } else { 
      $url = $facebook->getLoginUrl(array(
        'scope' => Config::get('facebook.scope'), 
        'redirect_uri' => Config::get('facebook.landing_page') 
         )); 
      echo "<script> top.location.href='".$url."'</script>"; 
     } 
    } catch (FacebookApiException $exc) { 
      $fb_id = NULL; 
      echo $exc; 
    } 
} 

如果我從Facebook註銷,但它仍然給了我fb_uid。奇怪的是,如果我用其他帳戶登錄,它不會打印當前登錄帳戶,而是最後一個帳戶。 「銷燬」用戶的唯一方法是刪除cookie。

我一直在CodeIgniter上工作,代碼工作得很完美。現在我正在學習Laravel,並嘗試測試我的代碼,但如果這不起作用,則無法繼續。

任何發生了什麼線索?

回答

0

我發現用戶需要註銷應用程序本身才能重置用戶ID。您可以通過致電$facebook->getLogoutUrl();

+0

它仍然打印用戶數據,任何線索? – user2426119

+0

由於代碼中有'print_r($ fb_data);'行,因此它會打印用戶數據。 –

0

註銷該用戶的URL,您也必須從應用程序註銷當前登錄的用戶。因此,每當用戶從您的應用程序註銷時,您也應該銷燬用戶的Facebook會話。

嘗試使用此方法銷燬記錄用戶的Facebook會議指出:

$facebook = IoC::resolve('facebook-sdk'); 
$facebook->destroySession(); 
相關問題