How to log out users using Facebook Connect in PHP and Zend? - Printable Version +- 0Day Forums (https://zeroday.vip) +-- Forum: Coding (https://zeroday.vip/Forum-Coding) +--- Forum: FrameWork (https://zeroday.vip/Forum-FrameWork) +--- Thread: How to log out users using Facebook Connect in PHP and Zend? (/Thread-How-to-log-out-users-using-Facebook-Connect-in-PHP-and-Zend) |
How to log out users using Facebook Connect in PHP and Zend? - regranted548764 - 07-20-2023 I am trying to build a Connect app using PHP and the Zend Framework. I also have a Zend_Auth based user authentication system. Now, I am able to log in using Facebook but log out is not working. I need to clear the Zend_Auth identity as well as remove all Facebook login info. What would be the best way to do this? I tried `facebook_client->expire_session()` and `facebook_client->clear_cookie_state();` together and also `facebook_client->logout($next)` after calling `Zend_Auth::getInstance()->clearIdentity()` None of them seem to work. RE: How to log out users using Facebook Connect in PHP and Zend? - cuddyhole219771 - 07-20-2023 You have to call the javascript client logout *first*, then send them to your php logout script. So, call .js: FB.Connect.logoutAndRedirect("/path/to/zend/logout/controller"); You'll see a modal popup that says "you are logging out of this site and facebook* You'll be redirected to wherever your logout script is: try { $facebook->expire_session(); } catch (FacebookRestClientException $e) { //you'll want to catch this //it fails all the time } I usually also call this function in the PHP logout script, just to be safe: /** * Remove the local Facebook cookies that get set manually * * @return void */ protected function _killFacebookCookies() { // get your api key $apiKey = $this->getConfig()->getApiKey(); // get name of the cookie $cookie = $this->getConfig()->getCookieName(); $cookies = array('user', 'session_key', 'expires', 'ss'); foreach ($cookies as $name) { setcookie($apiKey . '_' . $name, false, time() - 3600); unset($_COOKIE[$apiKey . '_' . $name]); } setcookie($apiKey, false, time() - 3600); unset($_COOKIE[$apiKey]); } RE: How to log out users using Facebook Connect in PHP and Zend? - monocleid54308 - 07-20-2023 You can logout the facebook user and redirect the user to your website page with PHP code like this : header("Location: " . $facebook->getLogoutUrl(array('next'=>"http://yourwebsite.com/redirectAfterFacebookLogout.php"))); RE: How to log out users using Facebook Connect in PHP and Zend? - Sirinfinity9 - 07-20-2023 (NEW FACEBOOK SDK) For me the getconfig() wouldn't work.So I had to find the new functions from the base_facebook.php file and add this bit of code in it. Then call it in your calling file. Before you do , call $facebook->destroySession(); public function _killFacebookCookies() { // get your api key $apiKey = $this->getAppId(); // get name of the cookie $cookie = $this->getSignedRequestCookieName(); $cookies = array('user', 'session_key', 'expires', 'ss'); foreach ($cookies as $name) { setcookie($apiKey . '_' . $name, false, time() - 3600); unset($_COOKIE[$apiKey . '_' . $name]); } setcookie($apiKey, false, time() - 3600); unset($_COOKIE[$apiKey]); } RE: How to log out users using Facebook Connect in PHP and Zend? - hacxx - 10-03-2023 (07-20-2023, 06:36 AM)cuddyhole219771 Wrote:Thanks, seems to be the correct solution. If it was for Youtube/Gmail/Etc. it has a small url that does logout. |