2013-08-25 37 views
0

我想在我的网站上实现Facebook登录身份验证和使用Facebook JavaScript SDK的一部分。获取Facebook登录弹出每次用户尝试登录使用我的网站上的Facebook

用一个简单的代码

window.fbAsyncInit = function() { 
FB.init({ appId: 'xxxxxxxxxxxxx', //change the appId to your appId 
    status: true, 
    cookie: true, 
    xfbml: true, 
    oauth: true}); 

function updateButton(response) 
{  
    if (response.status === 'connected') 
    { 
     $('#fb-auth').on('click',function(){ 
      FB.api('/me', function(info) { 
       login(response, info); 
      }); 


      //FB.logout(function(response) { 
       //logout(response); 
      //}); 
     }); 
    } 
    else 
    { 
     $('#fb-auth').on('click',function(){ 
      FB.login(function(response) { 
       if (response.authResponse) { 
        FB.api('/me', function(info) { 
         login(response, info); 
        });  
       } 
       else { 
        ; 
       } 
      }, {scope:'email,user_birthday,status_update,publish_stream,user_about_me'}); 
     }); 
    } 
} 
FB.getLoginStatus(updateButton); 
//FB.Event.subscribe('auth.statusChange', updateButton); 
};  

Facebook登录工作正常,但我所要做的是下一次,当他们尝试登录与Facebook,他们应该得到登录弹出和选项来登录,另一个用户。

第一次登录后,下次尝试再次登录Facebook时,他们在另一个选项卡中登录到Facebook,然后将它们重定向到登录页面,而没有任何弹出窗口或任何内容。

任何人都可以请给我一些指针,作为什么需要做到这一点。

+0

但是...用户已经登录..您是否试图让用户以不同的用户身份登录?在这种情况下,您需要首先将用户重定向到注销过程 – Lix

回答

0

如果您希望每次访问该应用时都登录该用户,则应在您的应用启动时获得状态connectedgetLoginStatus()时执行FB.logout

因此会话被破坏后,您可以再次拨打FB.login。就像 -

// app starts here 
FB.getLoginStatus() 
{ 
    if(status == "connected") 

     // call FB.logout() 
     // call FB.login() 

    else 

     // call FB.login() 

} 
+0

谢谢,是的,这是问题所在。我没有正确使用注销。 其实并没有使用Facebook注销,因为它没有从Facebook注销。 – GeekAb