我的应用程序中有一个与 Facebook 登录相关的小错误。
一旦用户通过本机 Facebook 站点更改他的帐户,并且我正在刷新页面(使用 facebook.php 类)并调用 $facebook->getUser() 它仍然会返回我前一个用户的用户 ID,并且只会在第二次刷新时更新。
我已经检查了我们请求的权限以及我们过去请求的权限,这里似乎没有“离线访问”,所以我已经从可能的原因列表中删除了它。
从安全性和使用便利性的角度来看,这都很重要。我试过调用destroySession,我也试过通过执行以下操作手动杀死cookie:
setcookie('fbsr_' . FACEBOOK_APP_ID, '', time()-3600, '/', '.'.$_SERVER['SERVER_NAME']);
这种奇怪行为的原因可能是什么?,有人可以帮助我吗?
在此先感谢,奥列格。
页面完整代码:
<?php
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
require_once 'src/facebook.php';
require_once 'config/configFB.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_SECRET_KEY,
));
// Get User ID
$fbUserId = $facebook->getUser();
echo $fbUserId;//testing the bug
exit(1);
?>
重要提示:我用来测试这个场景的所有用户都添加了我的应用程序,所以事实上,我应该可以访问他们的数据。