0

我有以下代码(javascript)

       <script>
            window.fbAsyncInit = function() {
            FB.init({
              appId: '<?=$this->facebook->getAppID()?>', 
              cookie: true, 
              xfbml: true,
              oauth: true
            });

            FB.Event.subscribe('auth.login', function(response) {
                loading();
                alert("test");
                window.location = throute + "login/index/fblogin";                
            });

            FB.Event.subscribe('auth.logout', function(response) {
                window.location.reload();
            });

            FB.Event.subscribe('auth.authResponseChange', function(response) {
                if (response.status=="connected") {
                    alert("test");
                    window.location = throute + "login/index/fblogin";
                }
            });
        };
        (function() {
            var e = document.createElement('script'); e.async = true;
            e.src = document.location.protocol +
              '//connect.facebook.net/en_US/all.js';
            document.getElementById('fb-root').appendChild(e);
        }());       
      </script>

如果用户没有登录 fb,一切都很好。

我的问题是,如果用户已经在 fb 上登录,他在访问它时会自动登录到站点。单击“登录”按钮后,我需要他登录。

泰寻求帮助。

4

1 回答 1

1

只需在用户单击您的登录按钮时初始化 FB 应用程序。我猜你正在使用facebooks 自己的 loginbutton,你不需要这样做。

('#loginButton').click(function(){
     FB.init({
          appId: '<?=$this->facebook->getAppID()?>', 
          cookie: true, 
          xfbml: true,
          oauth: true
        });
    //the rest of the code follows here
});

将会发生的情况是,如果用户已经在 Facebook 上登录,他们将在按下您的按钮后直接登录。

如果用户未在 Facebook 上登录,则在单击您的按钮时将出现登录对话框。

于 2012-09-05T13:04:40.150 回答