我的所有页面都有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或任何其他非主页链接上访问我的网站,并且页面完全加载(除了有一些滞后的FB登录按钮)最多1-2秒。
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>
呈现为:
这是正常行为吗?我首先做错了什么?有什么可以解决的吗?