Как выйти из приложения Facebook, но сохранить вход из Facebook
Я пробовал PHP SDK (v.3.1.1) и текущий Javascript SDK, как предлагается здесь:https://developers.facebook.com/docs/guides/web/
теперь при попытке выхода из системы я пробовал и FB.logout () (для js), и $ facebook-> getLogoutUrl ();
как ясно указано в документации по обоим методам, эти методы регистрируют пользователя как в приложении, так и в сеансе Facebook.
Но мне нужно только выйти из приложения Facebook (тестовый сайт).
Я попытался выйти из системы с моего тестового сайта, игнорируя аспект Facebook. Но в этом случае, когда пользователь снова нажимает кнопку входа в систему, поток входа в систему (проверка подлинности и перенаправление Facebook) не происходит.
Я также попытался: (как предложено предыдущими нерешенными вопросами)
$facebook->destroySession();
unset($_SESSION['fb_' . sfConfig::get('app_fb_config_id') . '_code']);
unset($_SESSION['fb_' . sfConfig::get('app_fb_config_id') . '_access_token']);
unset($_SESSION['fb_' . sfConfig::get('app_fb_config_id') . '_user_id']);
однако при перенаправлении на страницу входа $ facebook-> getUser () по-прежнему получает пользователя.
примечание: согласно примеру с документацией я использую php sdk для входа пользователя на свой тестовый сайт, а js sdk - для рендеринга и упрощения кнопки входа в Facebook.
дополнительно:
аутентификация, которую я использую, в основном то, что предлагает документация:
<?php
define('YOUR_APP_ID', 'YOUR APP ID');
//uses the PHP SDK. Download from https://github.com/facebook/php-sdk
require 'facebook.php';
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => 'YOUR APP SECRET',
));
$userId = $facebook->getUser();
?>
<html>
<body>
<?php if ($userId) {
$userInfo = $facebook->api('/' + $userId); ?>
Welcome <?= $userInfo['name'] ?>
<?php } else { ?>
<div id="fb-root"></div>
<fb:login-button></fb:login-button>
<?php } ?>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<?= YOUR_APP_ID ?>',
status : true,
cookie : true,
xfbml : true,
oauth : true,
});
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
</body>
</html>