Как отменить авторизацию приложения без полного выхода пользователя из Facebook? - PullRequest
3 голосов
/ 27 февраля 2011

Всякий раз, когда я пытаюсь «отключить» пользователя от моего веб-сайта, который использует Facebook JavaScript SDK для проверки подлинности, он вместо этого полностью уничтожает сеанс Facebook пользователя (например, если они вошли в Facebook на отдельной вкладке, они будут попросил войти еще раз). У меня есть следующий код на стороне клиента:

$('#logout').bind('click', function(){

    if(FB.getSession() !== undefined){
        //FB.logout();

        // instead of logging out of facebook, just disconnect them
        FB.api({
            method: 'Auth.revokeAuthorization'
        }, function(response){
            console.log('auth revoke', response);
        });
    }

});


window.fbAsyncInit = function() {

    FB.init({
         appId: MYAPPIDHERE
        ,status: true
        ,cookie: true
        ,xfbml: true
    });

    FB.Event.subscribe('auth.sessionChange', function(response){
        console.log(response);
        location = location.href;
    });

};

(function() {
    var e = document.createElement('script'); 
    e.async = true;
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
}());

Предположим, что jQuery находится на странице. Вызов FB.api успешен, но кажется «более мощным», чем должен быть. В основном это имеет тот же эффект, что и вызов FB.logout ().

Что я делаю не так, или я должен вместо этого сообщить об ошибке?

Спасибо!

1 Ответ

3 голосов
/ 21 марта 2011

Оказывается, мой фактический код фактически вызывал FB.logout () независимо.Упс!

...