如何使用新的Facebook Javascript SDK在我的应用程序中禁用facebook自动登录?

时间:2013-10-21 15:50:57

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

我现在使用Facebook Javascript SDK通过Facebook登录连接我的应用程序。如果新用户即将与我的应用程序连接,则用户详细信息将保存在数据库中。如果用户已存在,则将通过Facebook登录向用户显示相应的页面。有时如果我在浏览器的新选项卡中登录Facebook,那段时间我来到我的应用程序中的Facebook连接页面,Facebook登录会自动登录到我的应用程序页面。我只想在点击facebook登录按钮后登录我的应用程序。怎么办?

        <div id="fb-root">
            </div>

            <script>
            //FB initialization
               window.fbAsyncInit = function () {
                    FB.init({
                        appId: 'XXXXXXXXXX',
                        channelUrl : '//connect.facebook.net/en_US/all.js', 
                        status     : true, 
                        cookie     : true 
                    });
        //Event to check status of the login status
                    FB.Event.subscribe('auth.authResponseChange', function (response) {
                        if (response.status === 'connected') {
                            base_url = base_url + "&access_token=" + response.authResponse.accessToken + "&userId=" + response.authResponse.userID;
                            window.location.href = base_url;
                        }
                        else if (response.status === 'not_authorized') {
              FB.login();
            } else {
              FB.login();
            }
                    });

                };
// Load the SDK asynchronously
            (function (d) {
                var js, id = 'facebook-jssdk', 
               ref = d.getElementsByTagName('script')[0];
                if (d.getElementById(id)) { return; }
                js = d.createElement('script'); js.id = id; js.async = true;
                js.src = "//connect.facebook.net/en_US/all.js";
                ref.parentNode.insertBefore(js, ref);
            } (document));


        <fb:login-button scope="email,read_stream,publish_stream,offline_access,user_location"></fb:login-button>

1 个答案:

答案 0 :(得分:0)

我不完全确定你的问题是什么,但听起来你的登录功能是在页面加载上触发而不是在特定事件之后,例如点击。

如果你想将登录功能绑定到id为'login'的元素上,那么以下函数(在jQuery中)就可以了。

$(function() {
  $('#login').click(function() {
    FB.login(function(response) {
      // rest of function definition
    }, {scope: 'email'});
  });
});

同样,您可以在其他事件之后致电FB.logout()