应用验证刷新

时间:2011-11-27 15:46:38

标签: php facebook facebook-graph-api facebook-apps facebook-authentication

我一直在尝试新的身份验证,但有时会发生第一次访问应用程序一次又一次刷新。 (我的意思是当没有设置cookie时......第一次或者例如在浏览器重启后)

我有这个验证码:

require_once './facebook/facebook.php';
$facebook = new Facebook(array(
          'appId'  => $fbconfig['appid'],
          'secret' => $fbconfig['secret'], 
          'fileUpload' => $fbconfig['fileUpload'],
          'cookie' => true,
        ));

$uid = $facebook->getUser();

if($uid)
{
  session_start();
  if(!isset($_SESSION['me']))
  {
     try
        {
           $_SESSION['me'] = fql("select name, sex, pic_big, locale, email, birthday from user where uid=me()",$facebook);
           $_SESSION['me'] = $_SESSION['me'][0];
        }
        catch(Exception $o)
        {
          print_r($o);
        }
  }
}
else
{
            $loginUrl   = $facebook->getLoginUrl(
                array(
                    'scope'         => $fbconfig['perms'],
                    'redirect_uri'  => $fbconfig['canvas'],
                )
             ); 
            echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
            exit;
}

所以错误是$ facebook-&gt; getUser();它是0.但当我停止刷新并再次去那里..它正常工作。

1 个答案:

答案 0 :(得分:0)

尝试设置P3P标头。除非指定,否则某些浏览器不允许iframe中的页面设置cookie。

像PHP这样的第一行应该这样做。

标题('P3P:CP =“IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT”');

有关P3P的更多信息

http://en.wikipedia.org/wiki/P3P