现在我正在使用几个iframe页面进行测试。
$user = $facebook->require_login();
它为当前用户登录。一旦从facebook.com获取变量,它就会通过facebook提供的PHP API保存在cookie中。
我使用Facebook的另一个标签注销,我尝试使用我的应用程序而不刷新整个网站(只使用我的应用程序内的链接)。它仍然提供$user
变量。
表示用户已登录而不是用户已注销。
请帮帮我。我希望我的应用程序安全。
提前致谢。
答案 0 :(得分:0)
就登录Facebook而言,您已登录。您将不得不创建自定义PHP的会话处理。但是,如果要从应用程序的cookie中删除用户,可以执行以下操作:
//this will clear cookies for your application and redirect them to a login prompt
$facebook->set_user(null, null);
$facebook->redirect($appcallbackurl);
答案 1 :(得分:0)
您可以使用JavaScript SDK通过FB.Event.subscribe订阅注销事件,并在发生这种情况时重新加载页面:
FB.Event.subscribe('auth.logout',function(response){ setTimeout('window.location.reload()',0); });
(需要包装在setTimeout()中作为Firefox的解决方法。)
为了防止用户使用“在新窗口中打开此框架”,您可以检查页面是否在iframe中加载if(window == window.top)或者signed_request是否可用。如果没有,请重定向到标签网址。