Facebook画布Iframe App身份验证问题

时间:2010-04-17 06:56:42

标签: facebook

  1. 我正在使用Facebook应用程序从fbml到iframe的转换过程。
  2. 现在我正在使用几个iframe页面进行测试。

    $user = $facebook->require_login();
    

    它为当前用户登录。一旦从facebook.com获取变量,它就会通过facebook提供的PHP API保存在cookie中。 我使用Facebook的另一个标签注销,我尝试使用我的应用程序而不刷新整个网站(只使用我的应用程序内的链接)。它仍然提供$user变量。

    表示用户已登录而不是用户已注销。

    请帮帮我。我希望我的应用程序安全。

    1. 当我们选择“在新窗口中打开此框架”时,它可以访问我的iframe应用程序。 我也需要一个解决方案。
    2. 提前致谢。

2 个答案:

答案 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是否可用。如果没有,请重定向到标签网址。

相关问题