@EVOSandru6

Возможно ли поллноценно в facebook api javascript осуществить logout сразу из приложения и из системы?

Добрый день,

Создал WEB приложение в FACEBOOK API. Сделал его общедоступным.

Подключил API:

window.onload = function(){
            window.fbAsyncInit = function() {
                FB.init({
                    appId      : '*****',
                    xfbml      : true,
                    version    : 'v2.7'
                });
            };
        }
        (function(d, s, id){
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) {return;}
            js = d.createElement(s); js.id = id;
            js.src = "//connect.facebook.net/ru_RU/sdk.js";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));


На сайте есть 2 кнопки.

<button id="log_in_fb">Auth FB</button>
      <button id="log_out_fb">Log out FB</button>


Jquery код:

$('#log_in_fb').click(function(){
        FB.getLoginStatus(function(response) {
            if(response.status === 'connected') {
                console.log('Logged In');
                var uid = response.authResponse.userID;
                var accessToken = response.authResponse.accessToken;
            }
            else{
                FB.login(function (response){
                    if(response.status === 'connected') {
                        console.log('Авторизован везде');
                    }
                    else if (response.status === 'not_authorized') {
                        console.log('Пользователь авторизован в Facebook, но не авторизован в приложениии')
                    } else {
                        console.log('Пользователь не авторизован в Facebook.')
                    }
                }, { scope : 'public_profile, email, user_friends' });
            }
        });
    });
    $('#log_out_fb').click(function(){
        FB.getLoginStatus(function(response) {
            console.log(response.status);
            if (response && response.status === 'connected') {
                FB.logout(function(response) {
                    console.log('logout');
                });
            }
        });
    });


Схема такая.

Если я выйхожу из своего аккаунта Facebook, то при нажатии на кнопку авторизации на сайте появляетсяя окошко с формой ввода логина и пароля. Авторизируюсь, соглашаюсь, окошко исчезает.

Если я жму выход, то при первом нажатии response.status выдает connected, при повторном unknown. Т.е. вроде бы logout происходит. Но вновь нажав на кнопку входа - окошко всплывает и резко исчезает ( мой косяк?! ) . Проверяю на сайте FACEBOOK. Сессия пользователя жива, logout не произошел(

Если я вновь выхожу на сайте, цикл повторяется. Подскажите, как сделать полноценный logout?

К грусти - куки из браузера удалить нельзя яваскриптом(

На крайняк - может php такое умеет?
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Я рекомендую не зацикливаться на моменте выхода из Facebook. Это другой сайт, который не имеет никакого отношения к вашему.

Здесь про выход расписано https://developers.facebook.com/docs/reference/jav...
Можете попробовать открывать https://www.facebook.com/logout.php в спрятанном iframe, чтобы вышибить сессию Facebook из браузера. Не самое красивое решение, но должно сработать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы