[英]Facebook PHP: After user logs out of facebook, they can't login to my app with another user
抱歉,標題令人困惑,情況是這樣的……
我正在使用 facebook PHP SDK。
當用戶第一次嘗試登錄時,我會執行以下操作;
unset($_REQUEST);
unset($_COOKIE); //don't know if both are necessary
session_destroy();
然而不知何故,新的 fb 帳戶仍然被認為是最后一個帳戶(我得到了以前登錄的用戶訪問令牌,當我嘗試使用它時會拋出異常,因為該用戶不再登錄)。
我需要使用注銷 function 嗎? 我假設將用戶從 facebook 中注銷,這不是我想要做的,只需在我的應用程序中使用新用戶重新開始。
有任何想法嗎? 自從我清除所有內容以來,我真的不知道這些數據從哪里持續存在。 希望它是我遺漏的一些愚蠢的東西,但我想我會問以防萬一有人知道什么。
這似乎最終起作用了:
$fb_key = 'fbsr_'.$facebookConfig['app_id'];
setcookie($fb_key, '', time()-3600);
$facebook->destroySession();
薩布麗娜
使用具有有效用戶訪問令牌的注銷應該可以正常工作。 這是我使用的“除非允許離線訪問”
$user = $facebook->getUser();
$access_token = $_SESSION['fb_135669679827333_access_token'];
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$params = array (
access_token => ''.$access_token.''
);
$logoutUrl = $facebook->getLogoutUrl($params);
} else {
$params = array(
scope => 'read_stream,publish_stream,publish_actions,read_friendlists'
//redirect_uri => $url
);
$loginUrl = $facebook->getLoginUrl($params);
};
謝謝,但我不想讓用戶退出 facebook,只是退出我的應用程序。 – Sabrina Gelbart 4 月 4 日 10:40
通過執行 $this->facebook->destroySession(); 與您的問題相矛盾注銷用戶 facebook 而不是 facebook,如果其他用戶想使用這台計算機,他們應該從他們的 facebook 帳戶注銷 = 新用戶可以登錄您的網站。
你不希望用戶的 facebook 在他們從你的注銷時被注銷 facebook.com 對嗎? 那會讓我很沮喪
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.