से लॉगिन बनाए रखने मैं PHP एसडीके (v.3.1.1) की कोशिश की है, और वर्तमान जावास्क्रिप्ट एसडीके यहाँ सुझाव के रूप में: https://developers.facebook.com/docs/guides/web/कैसे फेसबुक आवेदन से उपयोगकर्ता लॉग आउट करने के लिए, लेकिन फेसबुक
अब जब की कोशिश कर रहा लॉग आउट मैंने FB.logout() (जेएस के लिए) और $ facebook-> getLogoutUrl() दोनों की कोशिश की है;
दोनों स्पष्ट रूप से राज्य के लिए प्रलेखन के रूप में, इन तरीकों आवेदन से बाहर के साथ ही उनके फेसबुक सत्र उपयोगकर्ता लॉग ऑन ।
लेकिन मुझे केवल फेसबुक एप्लिकेशन (परीक्षण साइट) से उपयोगकर्ता को लॉग इन करने की आवश्यकता है।
मैं उपयोगकर्ता अपने परीक्षण साइट से लॉग आउट की कोशिश की है, फेसबुक पहलू की अनदेखी। लेकिन इस मामले में, जब उपयोगकर्ता फिर से लॉगिन बटन पर क्लिक करता है, लॉगिन प्रवाह (फेसबुक प्रमाणीकरण और रीडायरेक्ट) नहीं होता है।
मैं भी करने की कोशिश की: (जैसा कि पिछले अनसुलझे सवालों ने सुझाव दिया)
$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']);
तथापि, जब प्रवेश पृष्ठ पर रीडायरेक्ट $ फेसबुक> getUser() अभी भी उपयोगकर्ता प्राप्त करता है।
नोट: दस्तावेज़ीकरण उदाहरण के अनुसार, मैं फेसबुक लॉग इन बटन को प्रस्तुत करने और सुविधा प्रदान करने के लिए उपयोगकर्ता को अपनी टेस्ट साइट, और जेएस एसडीके में लॉगिन करने के लिए php sdk का उपयोग कर रहा हूं।
अतिरिक्त:
प्रमाणीकरण मैं का उपयोग मूल रूप से है क्या प्रलेखन पता चलता है:
<?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>
यदि कोई उपयोगकर्ता आपके ऐप को प्रमाणित करता है और फेसबुक 'getUser()' में लॉग इन करता है तो हमेशा एफबीआईडी वापस कर देगा। कुकी कामों को हटाने, लेकिन एसडीके को 'getUser' का आह्वान करने के लिए एक नया access_token wenn मिलता है, सवाल यह है कि आप ऐसा क्यों करना चाहते हैं? न तो आप (ऐप) और न ही फेसबुक उपयोगकर्ता इससे कुछ हासिल करते हैं। – Rufinus
उस उपयोगकर्ता के लिए आपके पास सत्र कुकी को हटाने के बारे में कैसे है? यदि आप केवल अपनी कुकी हटाते हैं तो उपयोगकर्ता अभी भी फेसबुक पर लॉग ऑन रहेगा, लेकिन आपके ऐप पर नहीं। अगली बार जब उपयोगकर्ता लॉगिन बटन पर क्लिक करता है तो आप उसके लिए एक नया सत्र बनाते हैं। –
@ निट्टन टॉमर मैंने परीक्षण साइट के सत्र को हटाने की कोशिश की है, लेकिन जैसा कि मैंने कहा है, इस मामले में, जेएस एसडीके का लॉगिन बटन अब अपेक्षित काम नहीं करता है। – Alias