使用FB连接进行身份验证被调用两次

时间:2017-11-06 09:19:55

标签: javascript authentication facebook-graph-api

我尝试使用Facebook的SDK JavaScript允许用户使用FB帐户登录我的网站。

这是我的代码:

<script>
function checkLoginState() {
    FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            facebookLogin();
        }
    });
}

function facebookLogin() {
    FB.api('/me?fields=id,first_name,last_name,email', function(response) {
      console.log(response);
    });
}

window.fbAsyncInit = function() {
    FB.init({
        appId      : 'MY_FB_APP_ID',
        status     : true,
        cookie     : true,
        xfbml      : true,
        version    : 'v2.10'
    });
};

(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = 'https://connect.facebook.net/fr_FR/sdk.js';
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>

然后,在我的html中,我使用FB按钮登录或注销:

<fb:login-button data-auto-logout-link="true" scope="public_profile,email,user_birthday" onlogin="checkLoginState();"></fb:login-button>

当我点击这个按钮时,我的函数facebookLogin()被调用2次(当我成功登录时),我不明白为什么。 有人有想法吗?

0 个答案:

没有答案