2012-04-18 53 views
2

我想蛋糕PHP與Facebook PHP SDK連接註銷URL不工作正確

在App_Controller beforeFilter功能

$facebook = new Facebook(array(
     'appId' => Configure::read("FB_APP_ID"), 
     'secret' => Configure::read("FB_APP_SECRET"), 
    )); 

    // Get User ID 
    $user = $facebook->getUser(); 
pr($user); 
$logoutUrl = $facebook->getLogoutUrl(); 
$loginUrl = $facebook->getLoginUrl(); 

$this->set(compact('logoutUrl')); 

在view.ctp

<a href="<?php echo $logoutUrl; ?>">Logout</a> 

這裏我已經登錄Facebook的應用程序,但是當我嘗試使用logoutUrl註銷時,我總是獲取登錄用戶的用戶ID,然後單擊註銷。

$user = $facebook->getUser(); 
// always get the user id. 
pr($user); 

爲什麼會出現這種情況,無論註銷url是否無效?

+0

所以...你點擊註銷,當頁面回來時,它仍然回顯他們的ID,當它不應該 - 正確?什麼是正在生成的鏈接? – Dave 2012-04-18 14:13:12

+0

@Dave是的,你說的鏈接是註銷網址? – 2012-04-18 14:29:25

+0

爲註銷鏈接創建的實際URL是什麼? – Dave 2012-04-18 14:36:01

回答

2

可能是註銷按鈕正在從Facebook註銷用戶,而不是從您的應用程序註銷。

您必須使用$this->Auth->logout();從您的應用程序中註銷用戶。

0

Kachar對於執行從Facebook註銷而不是您的應用程序的getLogoutUrl()是正確的。儘管如此,我找不到任何對$this->Auth->logout();命令的參考。我發現我需要取消設置會話數據才能從我的應用程序中註銷。

session_start(); 
session_unset(); // The important line, must be called after session_start() 
session_destroy();