If you request the “offline_access” permission when using the Facebook PHP SDK (and sometimes even without it), it makes the default logout functionality not work very well. To fix this, here’s what worked for me:
- Change your logout url:
$logoutUrl = $facebook->getLogoutUrl(array( 'next' => ($fbconfig['baseurl'].'logout.php') ));
- On your logout.php page, add the following code:
setcookie('fbs_'.$facebook->getAppId(), '', time()-100, '/', 'domain.com'); session_destroy(); header('Location: /');
This should correctly logout your users.
Thanks!… It work’s nice!…
i want that user must go through fb login everytime….but above solution not work fine for me!.
Any idea what should I do?
Check your login link, it may be setting a cookie.
hi, you didn’t tell that we had to include the facebook js to the logout.php page! It wouldn’t work for me until I included it.
eg
require ‘scripts/facebook.php’;
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
‘appId’ => ‘xxxxxxxxxxxxxx’,
‘secret’ => ‘xxxxxxxxxxxxxxxxxxxxxxxxx’,
));
setcookie(‘fbs_’.$facebook->getAppId(), ”, time()-100, ‘/’, ‘http://www.repjesus.com’);
session_destroy();
header(‘Location: /’);
THANK YOU! I was going nuts.
You are a star! Bejesus that was right pain!
Thank you very much!!!!You just save my life today. I was getting lots of errors and then I found this. Problem solved.
Thanks again!!!!
wow i was stuck with logout problem for hours and you just fixed it. Thanks a million times! ;P
SAM Thank you Very Much….
solution for facebook logout url not working
http://phpdog.blogspot.in/2012/03/solution-for-facebook-logouturl-not.html
Fixed it, finally! THANKS!
Thanks, It helped me a lot.
Hi,
It is quite strange. I tried to logout user with official method: $facebook->getLogoutUrl(); It creates a link which looks good (https, token, etc.). It redirects to facebook logout.php than back to my page but the session remains same: FB.getLoginStatus: connected.
Now with your solution I can’t create the Cookie. I can create other Cookies e.g.: setcookie(“TestCookie”, ‘blah blah’); but after the redirection your Cookie not exists in the Console.
Do you have any idea?
Thank you very much.
this code solved my problem……………..
Thank you. I was stuck for an hr finding solution to logout. Even the fb docs dont have a good explanation.
what it’s a baseurl ?
i don’t have in my facebook config.
It’s just a value in the “fbconfig” array that I set up to hold the values related to the API. It’s not necessary, just a convenience to make the code more organized. You can just type in your site’s domain name.
In codeigniter, I have fixed it.
The cookie name is PHPSESSID
http://ashish-thakur.blogspot.in/2012/07/facebook-php-sdk-logout-resolved.html
Thanks a lot, It works
thinks….
Thank you very much!!!!
Thanks Bro.. it works great
Thanks Dude, it works like a charm,
Very nice tutorial..Thanks
Thank you so much!
THANK YOU SO MUCH !!! I have no idea how it works ..but it works !!
Thank you very much SAM
Can you please prefer for $fbconfig?
My goodness. I’ve been losing my mind in frustration for over an hour. Thank you so much for this post!
thanks a lot