facebook php-sdk не выходит из системы - PullRequest
0 голосов
/ 26 декабря 2011

Мне трудно заставить это работать. Я использую следующее для генерации 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')) 

, который генерирует почти такой же URL. Это тоже не сработало. Я заблудился относительно того, почему это не выход пользователя из системы. Я на самом деле пытался вручную вставить адрес в адресную строку, но он перенаправляет меня на домашнюю страницу Facebook.

Ответы [ 3 ]

3 голосов
/ 03 июля 2012

Facebook php sdk использует php-сессии для токенов, которые держат вас в системе. Чтобы очистить его, вы можете просто уничтожить сессию.

index.php:

<a href="logout.php">Log out</a>

logout.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 - это информация о моих конкретных приложениях.Замените на свой.

2 голосов
/ 26 декабря 2011

Если вы запрашиваете разрешение offline_access при использовании Facebook PHP SDK (а иногда даже без него), функция выхода из системы по умолчанию работает не очень хорошо. Чтобы это исправить, у меня сработало следующее:

//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: /');

Надеюсь, это поможет

0 голосов
/ 24 мая 2012

Это может быть связано с тем, что сеанс PHP и файл cookie сеанса по-прежнему не повреждены.Я написал короткую статью , которая пытается демистифицировать вход / выход FB в.

...