Задать вопрос
@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 такое умеет?
  • Вопрос задан
  • 169 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Я рекомендую не зацикливаться на моменте выхода из Facebook. Это другой сайт, который не имеет никакого отношения к вашему.

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

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

Похожие вопросы