每当用户尝试使用我的网站上的Facebook登录时,获取facebook登录弹出窗口

时间:2013-08-25 08:51:22

标签: javascript facebook facebook-login

我正在尝试在我的网站上实施Facebook登录作为身份验证的一部分并使用Facebook JavaScript SDK。

使用简单的代码

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,只是将它们重定向到登录页面而不会弹出任何内容。

任何人都可以给我一些指针作为实现这一点需要做的事情。

1 个答案:

答案 0 :(得分:0)

如果您想在每次访问应用时登录用户,那么当应用启动时,connected上的状态为getLoginStatus()时,您应该实施FB.logout

所以会话被销毁,然后你可以再次打电话给FB.login。就像 -

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

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

    else

        // call FB.login()

 }