我一直在尝试新的身份验证,但有时会发生第一次访问应用程序一次又一次刷新。 (我的意思是当没有设置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.但当我停止刷新并再次去那里..它正常工作。
答案 0 :(得分:0)
尝试设置P3P标头。除非指定,否则某些浏览器不允许iframe中的页面设置cookie。
像PHP这样的第一行应该这样做。
标题('P3P:CP =“IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT”');
有关P3P的更多信息