I am doing the facebook login and logout from a website. So if a user wants to login into the site he will click on facebook login and when he will click on logout then he will automatically logout from both facebook and from the site as well. So all for that I have made my code like this In index.html my code is like this
<div id="fb-root"></div>
<script type="text/javascript">
//<![CDATA[
window.fbAsyncInit = function() {
FB.init({
appId : 'XXXXXXXXXXXXX', // App ID
channelURL : '', // Channel File, not required so leave empty
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
oauth : true, // enable OAuth 2.0
xfbml : false // parse XFBML
});
};
// logs the user in the application and facebook
function login(){
FB.getLoginStatus(function(r){
if(r.status === 'connected'){
window.location.href = 'fbconnect.php';
}else{
FB.login(function(response) {
if(response.authResponse) {
//if (response.perms)
window.location.href = 'fbconnect.php';
} else {
// user is not logged in
}
},{scope:'email'}); // which data to access from user profile
}
});
}
// Load the SDK Asynchronously
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
//]]>
</script>
<a href='#' onclick='login();'>Facebook Login</a>
and in fbconnect.php my code is like this
<?php
require 'src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'XXXXXXXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'cookie' => true,
));
$user = $facebook->getUser();
$loginUrl = $facebook->getLoginUrl();
//echo "<a href='$loginUrl'>login</a>";
$logoutUrl = $facebook->getLogoutUrl();
//echo $loginUrl;
if($user){
$_SESSION['user_info'] = $user;
$_SESSION['user_pro']= $facebook->api('/me');
echo $_SESSION['user_pro']['first_name'];
echo $_SESSION['user_pro']['last_name'];
echo '<pre>';
//print_r($_SESSION);
echo '</pre>';
}
else{
echo 'not logged in ';
}
echo "<a href='logout.php'>log out </a>"
?>
and in logout.php my code looks like this
<?php
require 'src/facebook.php'; //including the facebook php sdk
$facebook = new Facebook();
$token = $facebook->getAccessToken();
$url = 'index.html';
$facebook->destroySession();
session_destroy();
header('Location: '.$url);
?>
All this is doing the site logout but it is not doing the logout from facebook. So can someone kindly tell me how to do logout from both facebook and website at a same time? Any help and suggestions will be reallly appreciale. Thanks
Dont'use any redirect
<a href='logout.php'>log out </a>
only need on action facebook session destroy
Then after you can use your site session destroy For more info :- PHP SDK - Facebook Logout
Yes this will not do logout from Facebook.
I see you are using the JS SDK also so you need to use JS API for logout. You can do as
You need to add the following JS function, I see u already have FB.login
Make sure you have the following JS in fbconnect.php file so as to trigger the FB functions So the complete code is
In the file
logout.php
you can handle the logout code for your website.Also for generating the logout using the PHP SDK you need to do as
I would suggest to use JS SDK for logout it works for sure and it logs out from Facebook as well.