Ваша проблема на самом деле является комбинацией проблем
Прежде всего, у вас включена поддержка файлов cookie для вашего экземпляра класса Facebook
.Это заставляет Facebook::getSession()
искать сеанс в файле cookie, если сеанс не предоставлен в $_REQUEST
.
И, с учетом этого кода, поскольку вы получаете сеанс до чтобы узнать, кто пользователь, старый сеанс, который все еще находится в cookie, извлекается.
Помните, что выход из Facebook не сделает ничего, чтобы удалить / удалить сеансовые куки в вашем домен.
У вас есть несколько способов обойти это.Если вы хотите оставить поддержку куки-файлов включенной, вам необходимо убедиться, что вы правильно сбросили этот куки-файл, когда неопознанный пользователь посещает приложение.Это то, что вам нужно сделать при новой загрузке страницы холста, а не то, что включено в каждую страницу вашего приложения.
$facebook = new Facebook(array(
'appId' => $conf['fb']['appid'],
'secret' => $conf['fb']['secret'],
'cookie' => true,
));
// Calling this w/no parameters will clear the session
$facebook->setSession();
Вы также можете просто отключить поддержку файлов cookie, но затемнеобходимо вручную поддерживать идентификатор сеанса и данные сеанса в Facebook.