2013-01-17 101 views
3

我使用JS SDK使用<fb:login-button></fb:login-button>按鈕Facebook登錄窗口消失

當我點擊「登錄」按鈕,我的網頁上登錄時,彈出對話框出現並迅速消失。

我發現這裏 Facebook login window appears and disappears very quickly

這就解釋了它發生,因爲用戶已經登錄到Facebook上分享這個其他線程。我的問題是,我該如何解決這個問題? 如果他們已經登錄到Facebook,我如何確保彈出窗口不會出現並消失?

+0

我不認爲有一種解決方法 - 它可以被無處不在地看到。但是,我正在考慮彈出式下(可能會加劇瀏覽器)或隱藏的iFrame(除非Facebook使用幀解析器,它可能會這樣做) –

回答

0

我想補充FWrnr的回答與實際代碼,因爲這確實非常有幫助。

的解決方案是FB.getLoginStatus功能,他說:

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
     window.location = //redirect to page with logged user (you have the response token in response) 
    } else { 
     //Show the login popup 
     FB.login(function(response) { 
     if (response.authResponse) { 
      window.location = //redirect to location after correct login 
     } 
     }, { scope: '<scopes>', state: '<state>' }); 
    } 
    }); 

這樣一來,如果用戶「連接」(登錄和應用程序授權),你會不會叫的FB.login方法,所以登錄窗口不會閃爍。在任何其他情況下,它將顯示登錄窗口,這是預期的結果。