1

我的应用程序中有一个与 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);
?>

重要提示:我用来测试这个场景的所有用户都添加了我的应用程序,所以事实上,我应该可以访问他们的数据。

4

1 回答 1

1

您可以将标头重定向到同一页面以“充当”第二个重定向。更多只是一个创可贴,而不是一个适当的解决方案。尽管如果我登录到不同的 Facebook 帐户,除非我弄错了,否则我将不得不重新授权您的应用程序以使用该帐户,因为不会设置权限。

于 2013-07-03T16:25:49.107 回答