我们的想法是,如果存在user_id
,请将用户重定向到https://www.example.com/XYZ/。如果没有,请先致电getLoginUrl
以获取user_id
。问题是我无法获得任何user_id
。因此,脚本继续getLoginUrl
,导致发生CSRF错误(我得到多个状态值)。这个问题很随意。
有什么想法吗?
require_once('../src/facebook.php');
require_once ('../src/fbconfig.php');
$user_id = $facebook->getUser();
if (!$user_id) {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'publish_stream, user_likes')
);
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
} else {
echo "<script>top.location.href = 'https://www.example.com/XYZ/'</script>";
exit;
}
答案 0 :(得分:0)
尝试:
print_r($user_id);
设置$ user_id并继续尝试,直到找到其中一个“随机”案例并观察它返回的内容。然后,您需要在if / then语句中添加其他条件来处理意外返回,或者执行重试[当然有限制以防止竞争条件]。
另外,根据服务器和魔术引号设置,您可能希望将第一种情况下的重定向代码更改为以下内容:
echo "<script type='text/javascript'>top.location.href = '" . $loginUrl . "';</script>";
我怀疑它与它有什么关系,或者你会在URL中看到它,但很难说出你的应用程序发生了什么,“随机”总是很痛苦。尝试找出在那些“随机”案例中返回的内容,并告诉你如何处理它。