Проблемы с выходом из системы, если без сеанса в wordpress

Я использую facebook на своем веб-сайте WordPress, и все работает нормально, кроме одной ситуации.

Если я выхожу из Facebook, а затем нажимаю «Выход» на веб-сайте, я получаю сообщение об ошибке:

FB.logout() вызывается без токена доступа.

Поэтому я заменяю код выхода следующим:

return javascript:if(FB.getAccessToken()){FB.logout(function(){location.href='" . $url . "'})}else {location.href='" . $url . "'} ";

(Это делается в хуке WordPress, чтобы я мог получить URL-адрес выхода из WordPress)

Но теперь, когда я нажимаю выход в этой ситуации, я получаю ошибку js:

Небезопасная попытка JavaScript получить доступ к фрейму...

Как я могу безопасно выйти из facebook и wordpress. FB.Logout не имеет обратного вызова ошибки и не выдает никаких ошибок js, поэтому проверить эту ситуацию сложно.

Благодарю вас!


person dbeja    schedule 18.10.2011    source источник


Ответы (1)


Сначала вам нужно получить статус входа в Facebook, и только если вы вошли в систему, вы можете вызвать FB.logout. Попробуйте следующий код.

FB.getLoginStatus(handleSessionResponse);

function handleSessionResponse(response) {

    //if we dont have a session (which means the user has been logged out, redirect the user)
    if (!response.authResponse) {
        return;
    }

    //if we do have a non-null response.session, call FB.logout(),
    //the JS method will log the user out of Facebook and remove any authorization cookies
    FB.logout(response.authResponse);
}
person Gary    schedule 28.11.2012