Facebook FB.logout not working in IE

2019-07-16 04:55发布

问题:

I am working on a django website which also allows users to sign in using their Facebook account. The login works fine, however I am not able to logout using Internet Explorer. The code seems to work fine on Firefox and Chrome.

Heres the code

function logoutFBUser()
{
    //logout user from website and Facebook and reload 
    alert ("called FB logout");
    if (FB.getAuthResponse()) 
    {
        alert ("has auth response");
        FB.logout(function(response) 
        {
            window.location.href = '/accounts/logout?next=/';
        });
        alert ("logged out of FB and redirected");
    }
    else 
    {
        alert(" no auth response");
        window.location.href = '/accounts/logout?next=/';
    }
}

In Firefox, I get the alert of has auth response, however in IE, I get the alert no auth response. If I only use FB.logout without FB.getAuthResponse then the function hangs when it hits FB.logout.

What am I missing?

回答1:

Finally solved this. I debugged into the javascript for FB.logout and for some reason it doesnt have the access_token which is why the call to FB.logout fails. Researching the Facebook documentation led me to this URL which I used for the logout process on my website successfully

Logoutlink from Facebook Documentation

https://www.facebook.com/logout.php?next=REDIRECT_URI&access_token=LOGGEDINUSER_ACCESS_TOKEN

Needless to say, I am using this on the serverside, so no need to use javascript any more. Please refer Facebook Authentication documentation for more information.

http://developers.facebook.com/docs/authentication/

Thanks for all the help