PHP SDK - Facebook Logout

15,482

Create a file logout.php

<?php 
session_start();            //start session
$_SESSION = array();    //clear session array
session_destroy();      //destroy session
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Log Out</title>
</head>

<body>
<p>You have successfully logged out!</p>
<p>Return to the <a href="....index.php">Home</a> page</p>

</body>
</html>

And change your code where you check user status

if ($user) { 
    $params = array( 'next' => 'http://....../logout.php' );
    $logoutUrl = $facebook->getLogoutUrl($params);
} else {
  $loginUrl = $facebook->getLoginUrl();
}

Use $logoutUrl for logout the user.

<?php if ($user): ?>
<?php echo "Welcome, ".$me['first_name']. " " .$me['last_name']   ." <br />";
      echo "Id: " . $me['id'] ." <br />";  ?>

<a href="<?php echo $logoutUrl; ?>">  Logout </a> <br />

<?php else: ?>
  <a href="<?php echo $loginUrl; ?>"> 

   <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif"> </a>  
 <?php endif ?>

Hope it will work fine

Share:
15,482
Blake
Author by

Blake

Updated on June 04, 2022

Comments

  • Blake
    Blake almost 2 years

    I am using the latest version of PHP SDK for Facebook (3.2.1)

    I was wondering, when logging out using the function provided in base_facebook.php from the sdk, if there was a way to stop it from actually logging out of facebook, but still deleting the session for the website application?

    Below is the logout function from base_facebook.php

    /**
    * Get a Logout URL suitable for use with redirects.
    *
    * The parameters:
    * - next: the url to go to after a successful logout
    *
    * @param array $params Provide custom parameters
    * @return string The URL for the logout flow
    */
    
     public function getLogoutUrl($params=array()) {
     session_destroy();
     return $this->getUrl(
      'www',
      'logout.php',
     array_merge(array(
      'next' => $this->getCurrentUrl(),
      'access_token' => $this->getUserAccessToken(),
      ), $params)
     );
    }
    

    and then my logout url is: $logoutUrl = $facebook->getLogoutUrl();then obviously using a anchor tag to logout: <a href="<?php echo $logoutUrl; ?>">Logout</a>

    Thank you.