[英]Logout of Facebook (using PHP SDK) and CodeIgniter
在我開始實施 Facebook 身份驗證之前,我的注銷 controller 看起來像這樣:
# Kill the session
$this->session->sess_destroy();
# Redirect back to main page.
redirect('', 'location');
我也嘗試修改它以使用戶退出 Facebook,但沒有運氣。
# Kill the session
$this->session->sess_destroy();
require 'application/sdk/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => '625256',
'secret' => '25256256',
'cookie' => true,
));
$session = $facebook->getSession();
if ($session) {
$location = (string) html_entity_decode($facebook->getLogoutUrl(array('next' => 'http://localhost:8888/taketocollege/')));
header("Location: $location");
exit();
}
# Redirect back to main page.
redirect('', 'location');
我究竟做錯了什么? 我不想為此使用 Javascript SDK,因為我希望這一切都在 controller 中完成。
謝謝!!
編輯:更清楚一點,問題是 session 沒有被破壞。 我的注銷 controller 將用戶發送到主頁,但主頁將 Facebook 用戶與 session 重定向到登錄頁面。 因此,Facebook 用戶最終進入了登錄頁面。 通常登錄頁面會自動讓他們登錄,但到那時,他們的 session 已被破壞。
您在這里擁有的是:一個“注銷”按鈕,它指向您的注銷 controller 並且您正試圖讓您的注銷 controller 調用一些東西以使用戶從 ZD85544FCE402C7A2A96AF28078ED 注銷。
如果您使用 Facebook 登錄您的用戶,則不需要注銷 controller。 您只需在頁面中顯示注銷 URL :
$args['next'] = "http://localhost:8888/taketocollege/";
$logoutUrl = $facebook->getLogoutUrl($args);
echo '<a href="' . $logoutUrl . '">Login with Facebook</a>';
如果您想在用戶注銷時清除 session,請在next
進行(對您而言, http://localhost:8888/taketocollege/
):
require "facebook.php";
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET,
));
$user = $facebook->getUser();
if (!$user) {
$this->session->sess_destroy();
}
希望有幫助!
我的代碼最初將用戶重定向到主頁。
$session = $facebook->getSession();
$me = null;
// Session based API call.
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
}
if($session && !$this->session->userdata('logged_in'))
redirect('login');
該代碼將用戶重定向到登錄頁面,因為 session 已更改,並未完全刪除。
通過更改最后兩行,我能夠解決此問題:
if($me && !$this->session->userdata('logged_in'))
redirect('login');
希望它可以幫助某人!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.