阻止facebook js sdk调用登录回调

时间:2014-04-19 17:30:02

标签: javascript facebook facebook-graph-api facebook-javascript-sdk

我有一个Facebook登录按钮:

<fb:login-button scope="email,user_birthday">Login with Facebook</fb:login-button>

和这个JS:

window.fbAsyncInit = function() {
    FB.init({
        appId: 'APP_ID_HERE',
        cookie: true,
        xfbml: true,
        oauth: true
    });
    FB.Event.subscribe('auth.login', function(response) {
        window.location.reload();
    });
};

我的问题是包含此代码的任何页面总是重新加载一次。这是因为上面的login回调被调用(如果用户登录到Facebook帐户),即使用户尚未点击上面的登录按钮。这是正常的行为吗?如果没有,我如何阻止调用login回调?

2 个答案:

答案 0 :(得分:0)

一个解决方案:您可以使用PHP sdk检查用户状态,并且仅当用户未登录时,在您订阅auth.login的位置创建JavaScript部分。

答案 1 :(得分:0)

每次SDK检测到状态从unknown / not_connected变为connected时,都会触发此事件。

听起来你想通过onlogin

在登录按钮上实际提供一个回调处理程序