Facebook的登录按钮 [英] facebook Log In Button

查看:163
本文介绍了Facebook的登录按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的网站上实施的Facebook认证(注册+登录)。一切工作正常,除了按钮显示即使我登录。在此先感谢

 < H1 ID =欢迎>欢迎到我的网站< / H1>
< D​​IV ID =FB-根>< / DIV>
<跨度ID =FB-登录级=隐藏>
< FB:登录按钮注册-URL =htt​​p://lemiart.com/register.php>< / FB:登录按钮>
< / SPAN>
&所述; SCRIPT SRC =htt​​ps://connect.facebook.net/en_US/all.js#appId=306738122732711&xfbml=1>&下; /脚本>
<脚本类型=文/ JavaScript的>
FB.init({APPID:306738122732711,状态:真的,饼干:真的,XFBML:真});FB.Event.subscribe('auth.login',函数(){
    登录();
});FB.getLoginStatus(功能(响应){
    如果(response.session){
    //用户登录。让auth.login订阅处理这
    }其他{
        登出();
    }
});的loggedIn =功能(){
    FB.api('/我',函数(响应){
    VAR欢迎=的document.getElementById('欢迎');
    如果(欢迎)welcome.innerHTML + =''+ response.id;
    的document.getElementById('FB-登录')的className =隐藏。
    })
}loggedOut =功能(){
    的document.getElementById('FB-登录')的className =。
}
< / SCRIPT>


解决方案

您目前的实现总是会提示用户登录。你或许需要做的是以下内容:

如果用户登录到您的应用程序,然后决定是否要显示FB写一个回调函数来FB.init,然后检查:登录按钮

这将是这个样子:

  window.fbAsyncInit =功能(){
    FB.init({
        // ...
    });    FB.getLoginStatus(功能(响应){
        FB.getLoginStatus(功能(响应){
            如果(response.session){
              //用户登录。让auth.login订阅处理这
        }其他{
            登出();
        }
    });
};

I'm implementing facebook authentication (register + login) at my website. Everything works fine, except for the button showing even if I'm logged in. Thanks in advance

    <h1 id="welcome">Welcome to my website</h1>
<div id="fb-root"></div>
<span id="fb-login" class="hidden">
<fb:login-button registration-url="http://lemiart.com/register.php"></fb:login-button>
</span>
<script src="https://connect.facebook.net/en_US/all.js#appId=306738122732711&xfbml=1"></script>
<script type="text/javascript">
FB.init({appId: '306738122732711', status: true, cookie: true, xfbml: true});

FB.Event.subscribe('auth.login', function(){
    loggedIn();
});

FB.getLoginStatus(function(response){
    if (response.session){
    // user logged in. Let the auth.login subscription handle this
    } else {
        loggedOut();
    }
});

loggedIn = function() {
    FB.api('/me', function(response) {
    var welcome = document.getElementById('welcome');
    if (welcome) welcome.innerHTML += ' ' + response.id;
    document.getElementById('fb-login').className = "hidden";
    })
}

loggedOut = function() {
    document.getElementById('fb-login').className="";
}
</script>   

解决方案

Your current implementation will always prompt the user to login. What you perhaps need to do is the following:

write a callback function to FB.init, which then checks if the user is logged into your application and then decide if you want to show the fb:login-button.

It would look something like this:

window.fbAsyncInit = function() {
    FB.init({
        //...
    });

    FB.getLoginStatus(function(response){
        FB.getLoginStatus(function(response){
            if (response.session){
              // user logged in. Let the auth.login subscription handle this
        } else {
            loggedOut();
        }
    });
};

这篇关于Facebook的登录按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆