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

相關問題