0

我现在使用 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>
4

1 回答 1

0

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

如果您想将登录函数绑定到单击 id 为“登录”的元素,那么以下函数(在 jQuery 中)将起作用。

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

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

于 2013-10-21T16:24:45.187 回答