dan giriş korumak ve mevcut JavaScript SDK burada önerilen olarak: https://developers.facebook.com/docs/guides/web/nasıl facebook uygulamasından kullanıcının oturumunu ama PHP SDK (v.3.1.1) denemiş facebook
şimdi çalışırken oturumu kapatıyorum FB.logout() (js için) ve $ facebook-> getLogoutUrl();
hem açıkça devlet belgelerinde olarak, bu yöntemler uygulamanın dışına yanı sıra facebook oturumu kullanıcıyı log .
Ama sadece facebook uygulama (test yeri) dışına kullanıcıyı oturum açmanız gerekir.
Ben facebook yönünü göz ardı benim test siteden kullanıcının oturumunu çalıştılar. Ancak bu durumda, kullanıcı tekrar giriş düğmesine bastığında, oturum açma akışı (facebook kimlik doğrulama ve yönlendirme) gerçekleşmez.
Ben de denedim: oturum açma sayfasına yönlendirme yaparken
$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']);
Ancak, $ facebook-> GetUser() hala kullanıcıyı alır (önceki çözülmemiş sorulara önerdiği gibi).
not: dokümantasyon Örneğin gereğince, benim test sitesi, ve kullanıcının girişi için php sdk kullanıyorum js sdk, işlemek ve facebook giriş düğmesine kolaylaştırmak için. Ek
i kullanmak kimlik doğrulama temelde
hangi belgelerin öneriyor:
<?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>
Bir kullanıcı uygulama için doğrulanmış VE 'GetUser Facebook'a Giriş yaptıktan ise()' daima FBID dönecektir. çerez silme işleri, ancak sdk getme 'getUser' çağırmak yeni bir access_token wenn olsun, bu yüzden bunu yapmak istiyorsun? ne siz (uygulama) ne de facebook kullanıcısı bundan bir şey kazanmaz. – Rufinus
Sadece o kullanıcı için sahip olduğunuz oturum çerezini silme hakkında ne dersiniz? Çerezinizi yalnızca sildiyseniz, kullanıcı hala uygulamanıza değil de facebook'a giriş yapar. Kullanıcı giriş düğmesine bastığında, onun için yeni bir oturum oluşturursunuz. –
@NitzanTomer Test sitesinin oturumunu silmeyi denedim, ancak belirttiğim gibi, bu durumda js sdk giriş düğmesi artık beklendiği gibi çalışmıyor. – Alias