[英]facebook php-sdk not logging out
我很難讓這個工作。 我使用以下內容生成注銷 url:
$logout = "https://www.facebook.com/logout.php?next=" . urlencode('http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF']) . "&access_token=" . $facebook->getAccessToken();
生成正確的(使用最新版本)url:
https://www.facebook.com/logout.php?next=http%3A%2F%2F...&access_token=AA....ZD
但是,這實際上並沒有將用戶注銷。 我嘗試使用
$facebook->getLogoutUrl(array('next' => 'myurl'))
它生成幾乎相同的網址。 這也沒有奏效。 我不知道為什么它沒有將用戶注銷。 我實際上嘗試手動將地址放入地址欄中,但它會將我重定向到 Facebook 主頁。
facebook php sdk 使用 php 會話來標記讓您保持登錄狀態。要清除它,您只需銷毀會話即可。
索引.php:
<a href="logout.php">Log out</a>
注銷.php
$facebook = new Facebook(array('appId' => FB_APP_ID, 'secret' => FB_APP_SECRET, 'cookie' => true));
$facebook->destroySession();
header('location: index.php');
FB_APP_ID 和 FB_SECRET 是我的特定應用程序信息。 換成你自己的。
如果您在使用 Facebook PHP SDK 時請求offline_access權限(有時甚至沒有它),它會使默認的注銷功能無法正常工作。 為了解決這個問題,以下對我有用:
//change your logout url to
$logoutUrl = $facebook->getLogoutUrl(array( 'next' => ($fbconfig['baseurl'].'logout.php') ));
//on logout page
setcookie('fbs_'.$facebook->getAppId(), '', time()-100, '/', 'domain.com');
session_destroy();
header('Location: /');
可能是因為PHP會話和會話cookie仍然完整。 我寫了一篇簡短的文章 ,試圖揭露FB登錄/注銷的神秘色彩。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.