2013-10-21 33 views
0

我現在使用Facebook Javascript SDK通過Facebook登錄連接我的應用程序。如果新用戶與我的應用程序連接,用戶詳細信息將被保存在數據庫中。如果用戶已經存在,那麼適當的頁面將通過Facebook登錄顯示給用戶。有時候,如果我在Facebook的新標籤瀏覽器中登錄,在那段時間我來到我的應用程序的Facebook連接頁面,Facebook登錄會自動登錄到我的應用程序頁面。我只想點擊Facebook登錄按鈕後才能登錄到我的應用程序。如何操作?如何在我的應用程序中使用新的Facebook Javascript SDK禁用Facebook自動登錄?

 <div id="fb-root"> 
      </div> 

      <script> 
      //FB initialization 
       window.fbAsyncInit = function() { 
        FB.init({ 
         appId: 'XXXXXXXXXX', 
         channelUrl : '//connect.facebook.net/en_US/all.js', 
         status  : true, 
         cookie  : true 
        }); 
     //Event to check status of the login status 
        FB.Event.subscribe('auth.authResponseChange', function (response) { 
         if (response.status === 'connected') { 
          base_url = base_url + "&access_token=" + response.authResponse.accessToken + "&userId=" + response.authResponse.userID; 
          window.location.href = base_url; 
         } 
         else if (response.status === 'not_authorized') { 
       FB.login(); 
      } else { 
       FB.login(); 
      } 
        }); 

       }; 
// Load the SDK asynchronously 
      (function (d) { 
       var js, id = 'facebook-jssdk', 
       ref = d.getElementsByTagName('script')[0]; 
       if (d.getElementById(id)) { return; } 
       js = d.createElement('script'); js.id = id; js.async = true; 
       js.src = "//connect.facebook.net/en_US/all.js"; 
       ref.parentNode.insertBefore(js, ref); 
      } (document)); 


     <fb:login-button scope="email,read_stream,publish_stream,offline_access,user_location"></fb:login-button> 

回答

0

我並不完全相信你的問題是什麼,但它聽起來像是你的登錄功能在頁面加載發射的特定事件後反對,如點擊。

如果你想綁定登錄函數來點擊一個id爲'login'的元素,那麼下面的函數(在jQuery中)就可以工作。

$(function() { 
    $('#login').click(function() { 
    FB.login(function(response) { 
     // rest of function definition 
    }, {scope: 'email'}); 
    }); 
}); 

與此類似,您可能會在某個其他事件後致電FB.logout()

+0

你的代碼在mozilla firefox和IE中無法正常工作。我已經在我的應用程序中編寫了這種類型的代碼。當我點擊登錄按鈕時,facebook登錄會在Mozilla Firefox和IE瀏覽器屏幕的一側打開。 Chrome沒有問題。這就是爲什麼我使用上面的代碼來顯示登錄彈出瀏覽器屏幕的中心。如果您有任何想法,請告訴我。 – RGS

相關問題