Как и предполагалось, я попробовал:
setcookie('fbs_'.$facebook->getAppId(), '', time()-100, '/', '.domain.com');
Это не сработало. То, что я сделал, было просто скопировать из примера кода fb:
// Get User ID
$user = $facebook->getUser();
// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.
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;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
Средняя часть с if try get user_profile - это тест для получения профиля пользователя, и в случае неудачи идентификатор пользователя будет сброшен. Это сделает последнюю часть с правильными getLoginUrl () и getLogoutUrl ().
Я верю, что установка cookie правильнее, чем попытка запроса и посмотреть, не сработает ли он ... но поскольку setcookie не работает, у меня не было выбора: (
Глупый facebook, который возвращает токен с этим $user = $facebook->getUser();
, когда пользователь фактически вышел из системы.
Надеюсь, это поможет тем, кто в ней нуждается.