2014-01-20 53 views
0

我見過很多關於這方面的問題,但其中大多數都過時了,因爲Facebook更新了他們的API。當授權Facebook API時強制用戶在Facebook上登錄

我有一個網站,人們可以綁定他們的帳戶與他們的Facebook帳戶,通過存儲他們的訪問令牌的用戶。這很好。

但問題是,我有一個選擇,人們可以將他們的Facebook連接到他們的帳戶當場共享計算機上人們可以來去。 但是,通過授權該公共計算機上的應用程序,他們也會自動登錄到Facebook,所以任何人都可以訪問Facebook,從而進入Facebook的前任傢伙。 但問題在於,下一個將Facebook與其賬戶綁定的人會自動獲得之前已經授權訪問的人,因爲已經登錄的用戶已經授權該應用。

有沒有辦法強制用戶授權他們的Facebook時,他們按下綁定Facebook按鈕?或者在我們收到accessToken後,有沒有辦法從Facebook註銷用戶? 我與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'));