【问题标题】:App authentication refresh应用认证刷新
【发布时间】:2012-01-07 09:00:33
【问题描述】:

我一直在尝试新的身份验证,但有时会发生第一次访问时应用程序会一次又一次地刷新。 (我的意思是当没有设置 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->getUser();它是 0。但是当我停止刷新并再次去那里时......它工作正常。

【问题讨论】:

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


    【解决方案1】:

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

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

    header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

    在此处了解有关 P3P 的更多信息

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-11
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      • 2020-02-10
      • 2013-12-21
      • 1970-01-01
      相关资源
      最近更新 更多