0

我一直在尝试新的身份验证,但有时会发生在第一次访问应用程序一次又一次刷新。 (我的意思是如果没有cookies是set..first有史以来时间或例如浏览器重新启动后)应用程序身份验证刷新

我有认证验证码:

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.但是,当我停止刷新,并再次去那里..它正常工作。

回答

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

相关问题