我有一个与我的应用程序上的Facebook登录相关联的小错误。
一旦用户通过原生Facebook网站更改其帐户,我正在刷新页面(使用facebook.php类)并调用$ facebook-> getUser(),它仍将返回我的用户ID以前的用户,只会在第二次刷新时更新。
我已经检查了我们要求的权限以及我们过去请求的权限,而且似乎没有“离线访问”,所以我已将其从可能原因列表中删除。 / p>
这从安全性和使用便利性的原因来看都很重要。 我试过调用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);
?>
重要提示:我为测试此场景而使用的所有用户都添加了我的应用程序,所以实际上我应该可以访问他们的数据。
答案 0 :(得分:1)
您可以将标题重定向到同一页面,以“行动”作为第二个重定向。更多只是一个乐队助手而不是一个合适的解决方案。虽然我错了,如果我登录到不同的Facebook帐户,我将不得不重新授权您的应用程序使用该帐户,因为不会设置权限。