2014-01-20 4 views
0

Я видел много вопросов об этом, но большинство из них устарели из-за того, что Facebook обновил свой API.Заставить пользователя зарегистрироваться в Facebook при авторизации Facebook API

У меня есть сайт, где люди могут связывать свою учетную запись со своей учетной записью Facebook, сохраняя свой токен доступа для этого пользователя. Это отлично работает.

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

Есть ли способ всегда заставить пользователя авторизовать свой Facebook, когда они нажимают кнопку привязки Facebook? Или есть способ выйти из аккаунта Facebook после того, как мы получили accessToken? У меня такая же проблема с Twitter, но я оставлю это для другого вопроса.

Спасибо заранее.

ответ

0

Я не смог найти решение, чтобы заставить людей войти в систему (проблема была, если они уже были зарегистрированы в & авторизованных) Но я использовал javascript SDK для выхода из системы, если он зарегистрирован в & авторизованным, если он вошел в систему, но не был авторизован или не авторизовался вообще, тогда он, по крайней мере, получит форму для входа . На странице подключения к Facebook я запускаю этот javascript, который автоматически выйдет из системы, который регистрирует &, что означает, что следующий парень, который приходит для входа в свою учетную запись на Facebook теперь получите ясный экран входа в систему

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'AppIdStringHere', 
     status  : true, 
     xfbml  : true 
    }); 
    FB.getLoginStatus(function (response) { 
     if (response.status === 'connected') 
     { 
      //alert("Authorized"); 
      FB.login(function() { 
       FB.logout(function (response) { 
       }); 
      }, { scope: 'publish_actions' }); 
     } 
     else if (response.status === 'not_authorized') 
     { 
      //alert("Logged in but not authorized"); 
     } 
     else 
     { 
      //alert("Not logged in"); 
     } 
    }); 
}; 

    (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/en_US/all.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
Смежные вопросы