Я использую Facebook php-sdk в своем приложении iframe для получения статуса входа в систему.Сразу после того, как я выйду, используя учетную запись Facebook> Ссылка на выход, сессия еще не уничтожена.Я должен подождать несколько минут, прежде чем истечет время старого сеанса, затем мое приложение снова получит правильный статус входа.
Я ожидаю, что Facebook завершит свою работу и сеанс, когда пользователь выйдет из системы.Как вручную убить сеанс?
Вот мой код:
$initParams = array(
'appId' => $conf['app_id'],
'secret' => $conf['secret_api_key'],
'cookie' => TRUE,
);
$fb = new Facebook($initParams);
$fb->getSession(); // will return a session object eventhough user signed out!
решено:
вызов $fb->api('/me')
уничтожит сеансесли пользователь ранее вышел из системы.Я изменил свой код следующим образом:
if ($session)
{
try
{
$fbuid = $fb->getUser();
$me = $fb->api('/me');
}
catch(FacebookApiException $e){}
}
Если вызов API завершится неудачно, $session
будет установлен в NULL.Очень странное поведение, я не объясняю все, что здесь происходит, но это решило мою проблему отсутствия обновления остаточного объекта сеанса с помощью метода getSession()
.