Iframe 登录/退出按钮不再保持状态

Iframe 登录/退出按钮不再保持状态,iframe,facebook-javascript-sdk,facebook-social-plugins,facebook-login,Iframe,Facebook Javascript Sdk,Facebook Social Plugins,Facebook Login,在过去的24小时里,我的代码一直运行良好。我没有更改任何内容,但现在#fb按钮变小了,不再在应该时显示“注销” 你可以在网站上看到这一点 以下代码嵌套在BODY>ROOT中: <div id="fb-root"></div> <script type="text/javascript"> // Load the SDK Asynchronously (function(d){ var js, id = 'facebook-jss

在过去的24小时里,我的代码一直运行良好。我没有更改任何内容,但现在#fb按钮变小了,不再在应该时显示“注销”

你可以在网站上看到这一点

以下代码嵌套在BODY>ROOT中:

<div id="fb-root"></div>
<script type="text/javascript">
    // 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));

    // Init the SDK upon load
    window.fbAsyncInit = function() {
        FB.init({
            appId:'271193286279763',
            channelUrl:'//'+window.location.hostname+'/channel',
            status:true,
            cookie:true,
            xfbml:true
        });

        // Conditional UI for landing page
        if (landing) {
            FB.getLoginStatus(function(response) {                                                                                                                              
                if(response && response.status == 'connected') {                                                                                                                
                    FB.api('/me', function(response) {
                        var heading = $('#goods h1').text().replace('Homewrd','Welcome '+response.first_name+'!');
                        $('#goods h1').text(heading);
                    });
                }
            });
        }

        // listen for and handle auth.statusChange events
        FB.Event.subscribe('auth.statusChange', function(response) {
            fbEventful = true;
            if (response.authResponse) {
                fbToken = response.authResponse.accessToken;
                $('#fb-button').css({'display':'inline','float':'left'});
                $('#toolbox').css({'display':'inline'});
                $('#local-login').hide();
                $('#local-logout').hide();
                currentUser = {
                    fbid:response.authResponse.userID
                }
                displayPicture();
            } else {
                $.cookie('cuat', null);
                $.ajax({
                    url:'/logout.json',
                    type:'delete',
                    success:function() {
                        ajaxOff();
                        renderLocal();
                    }
                });
            }
        });

        FB.Event.subscribe('auth.login',
            function(response) {
                FB.api('/me', function(me){
                  if (me.name) {
                    currentUser = {
                        fbid:me.id,
                        email:me.email,
                        first_name:me.first_name,
                        last_name:me.last_name
                    }
                    params = {
                        fbid: currentUser.fbid,
                        user: {
                            fbid:currentUser.fbid,
                            email:currentUser.email,
                            first_name:currentUser.first_name,
                            last_name:currentUser.last_name
                        }
                    }
                    $.ajax({
                        url:domain+'/user.json',
                        data:params,
                        dataType:'json',
                        type:'post',
                        success:function(e) {
                            cuat = e.user.auth_token;
                            $.cookie('cuat', cuat, {
                                path:'/',
                                expires:7
                                }
                            );
                            if (rurl) {
                                refreshSession();
                            }
                            if (storedProcedure!==null) {
                                storedProcedure();
                            }
                        }
                    });
                  }
                });
            }
        );

        $('#local-logout a').click(function(e) {
            e.preventDefault();
            var x = confirm('Are you sure that you want to logout?');
            if (x===true) {
                ajaxOn();
                $.ajax({
                    url:'/logout.json',
                    type:'delete',
                    success:function() {
                        ajaxOff();
                        window.location.reload();
                    }
                });
            }
            return false;
        });

        setTimeout(function() {
            if (!fbEventful) {
                renderLocal();
            }
        },1000);
    }
</script>
<div id="header">
    <div id="logo">
        <h1>Logo Link</h1>
    </div>
    <div id="session">
        <div id="fb-button" autologoutlink="true" class="fb-login-button" scope="publish_stream,email,user_about_me,user_birthday,user_hometown,offline_access"></div>
        <div id="fb-picture"></div>
        <div id="local-login"><p>local login link</p></div>
        <div id="local-logout"><p>local logout link</p></div>
    </div>
</div>

//异步加载SDK
(职能(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);
}(文件);
//加载时初始化SDK
window.fbAsyninit=函数(){
FB.init({
appId:'271193286279763',
channelUrl:'/'+window.location.hostname+'/channel',
状态:正确,
曲奇:是的,
xfbml:对
});
//登录页的条件用户界面
如果(着陆){
FB.getLoginStatus(函数(响应){
如果(response&&response.status=='connected'){
FB.api('/me',函数(响应){
变量标题=$(“#商品h1”).text().replace('Homewrd','Welcome'+response.first#u name+'!');
$(#商品h1')。正文(标题);
});
}
});
}
//侦听并处理auth.statusChange事件
FB.Event.subscribe('auth.statusChange',函数(响应){
fbEventful=真;
if(response.authResponse){
fbToken=response.authResponse.accessToken;
$('fb button').css({'display':'inline','float':'left'});
$('toolbox').css({'display':'inline'});
$(“#本地登录”).hide();
$(“#本地注销”).hide();
当前用户={
fbid:response.authResponse.userID
}
显示图片();
}否则{
$.cookie('cuat',null);
$.ajax({
url:“/logout.json”,
类型:'delete',
成功:函数(){
ajaxOff();
renderLocal();
}
});
}
});
FB.Event.subscribe('auth.login',
功能(响应){
api('/me',函数(me){
如果(我的名字){
当前用户={
fbid:me.id,
电子邮件:me.email,
名字:我,名字,
姓:我。姓
}
参数={
fbid:currentUser.fbid,
用户:{
fbid:currentUser.fbid,
电子邮件:currentUser.email,
first\u name:currentUser.first\u name,
姓氏:currentUser.last\u name
}
}
$.ajax({
url:domain+'/user.json',
数据:params,
数据类型:'json',
类型:'post',
成功:职能(e){
cuat=e.user.auth_令牌;
$.cookie('cuat',cuat{
路径:“/”,
有效期:7
}
);
if(rurl){
刷新会话();
}
if(StoredProcess!==null){
存储过程();
}
}
});
}
});
}
);
$(“#本地注销a”)。单击(函数(e){
e、 预防默认值();
var x=confirm('您确定要注销吗?');
如果(x==true){
ajaxOn();
$.ajax({
url:“/logout.json”,
类型:'delete',
成功:函数(){
ajaxOff();
window.location.reload();
}
});
}
返回false;
});
setTimeout(函数(){
如果(!fbEventful){
renderLocal();
}
},1000);
}
徽标链接
本地登录链接

本地注销链接


我对js sdk html5登录按钮也有同样的问题,自动链接不再显示。这可能是出于设计考虑,因为它们在sdk中隐藏了很多私有函数。例如,我的注销页面在登录时,用于显示注销,此外,带有动态或静态文本的按钮不再显示文本。reAuthi是故意说的,因为当我在登录时单击登录按钮时,Facebook会通过告诉我已经登录,单击关闭来处理错误。在我的情况下,如果已经登录,则无法识别经过身份验证的用户。这可能与我将回调与服务器端会话相结合的方式有关,因此我需要一些时间来识别和修复。我将login.php页面缩减为纯js sdk,以解决登录php sdk时出现的问题。在我的脑海里,虽然我正在从浏览器中绘制会话。只是为了避免JSSDK出现故障。T