0

我所有的页面都有 facebook 登录按钮并加载 facebook SDK。

这是我加载FB的JS代码:

window.fbAsyncInit = function() {
        FB.init({
          appId   : 129837912837129837128937, //fake id
      channelUrl : '//www.example.com/channel.php', // Channel File
          status  : true, // check login status
          cookie  : true, // enable cookies to allow the server to access the session
          xfbml   : true, // parse XFBML
          oath    : true
        });
// Load the SDK Asynchronously
  (function(d){
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = \"//connect.facebook.net/en_US/all.js\";
     d.getElementsByTagName('head')[0].appendChild(js);
   }(document));

问题重现:

1) 使用注销链接从我网站内的 facebook 注销。Facebook.com 也会被注销。到目前为止还好。我的网站现在有用户注销。

2) 用户有时会访问 facebook.com 并登录。他使用 cookie 来维护会话。

3)然后他直接通过链接 /page.php?5&sdasda&asdad 或任何其他非主页链接访问我的网站,并且页面完全加载(除了最大延迟为 1-2 秒的 FB 登录按钮)。

4) 当 FB 登录按钮最终加载时,FB js 检测到用户已经登录 facebook.com(查看在步骤 2 中获得的 fb cookie),因此尝试通过重定向到根目录(www.mydomain)来“登录”他.com) 并且不刷新当前页面。

这是我的登录按钮的样子:

<div class="fb-login-button fb_iframe_widget " scope="status_update,email,user_birthday,read_stream,publish_stream,share_item"></div>

呈现为:呈现的 facebook 登录按钮

这是正常行为吗?我首先做错了什么吗?有什么办法解决这个问题吗?

4

0 回答 0