Php Facebook授权期间的无限循环
我有一个简单的代码:Php Facebook授权期间的无限循环,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我有一个简单的代码: // index.php require_once("/fb/facebook.php"); require_once("/config/config.php"); $facebook = new Facebook(array( 'appId' => $config['appId'], 'secret' => $config['secret'], 'cookie' => true )); $user = $facebook-&
// index.php
require_once("/fb/facebook.php");
require_once("/config/config.php");
$facebook = new Facebook(array(
'appId' => $config['appId'],
'secret' => $config['secret'],
'cookie' => true
));
$user = $facebook->getUser();
if ($user === 0) {
$loginUrl = $facebook->getLoginUrl(array(
'redirect_uri' => 'https://www.example.com/join.php'
));
echo("<script> top.location.href='" . $loginUrl . "'</script>");
exit;
}
else {
var_dump($facebook->api("/me"));
}
//index.php
只需要一次(“/fb/facebook.php”);
需要_一次(“/config/config.php”);
$facebook=新的facebook(数组)(
'appId'=>$config['appId'],
'secret'=>$config['secret'],
“cookie”=>true
));
$user=$facebook->getUser();
如果($user==0){
$loginUrl=$facebook->getLoginUrl(数组)(
'重定向\u uri'=>'https://www.example.com/join.php'
));
echo(“top.location.href=”。$loginUrl。“”);
出口
}
否则{
var_dump($facebook->api(“/me”);
}
而join.php代码是:
//join.php
require_once("/fb/facebook.php");
require_once("/config/config.php");
$facebook = new Facebook(array(
'appId' => $config['appId'],
'secret' => $config['secret'],
'cookie' => true
));
if (isset($_REQUEST['error'])) {
echo("<script>top.location.href='". $config['errors']['auth'] . "'</script>");
exit;
}
echo("<script>top.location.href='". $config['url'] . "'</script>");
//join.php
只需要一次(“/fb/facebook.php”);
需要_一次(“/config/config.php”);
$facebook=新的facebook(数组)(
'appId'=>$config['appId'],
'secret'=>$config['secret'],
“cookie”=>true
));
如果(isset($_请求['error']){
echo(“top.location.href=””$config['errors']['auth'].“”);
出口
}
echo(“top.location.href=”。$config['url'].“”);
问题是,当我转到:(并且我没有登录facebook)时,应用程序会显示auth对话框(正确),但在这一步之后,它会从index.php无限循环到join.php
当我检查join.php中是否有任何错误时,您可以看到,我重定向到index.php(应用程序的主页),但在index.php中,我仍然得到$user==0
,因此它重定向到join.php…等等(无限循环)
我怎样才能解决这种问题
多谢各位
编辑:
我使用join.php作为登录页面的回调(重定向uri)。此页面的目的是将有关用户的信息保存在数据库中,因此join.php将执行此操作,然后重定向到index.php以允许用户使用该应用程序。错误?您需要调用
$facebook->getUser()
,以便实际处理回调数据以在join.php
中查找访问令牌。您为什么希望用户转到join.php?fb会让未经授权的用户登录页面,然后重定向回您的应用程序,所以应该没问题,不是吗?join.php的目的是什么?什么是$config['url]
和$config['errors']['auth']?
如果成功,它似乎应该重定向。@dhirajbodichera请查看question@Yan请参见上面的编辑$config['url]是画布(),然后['errors']['auth']是一个自定义页面,当身份验证过程中出现错误时,我会显示该页面。如您所见,我检查是否设置了“error”参数,如果设置了,则显示该页面以通知用户拒绝授权。您只需将用户数据保存到index.php中else
条件下的数据库中即可。不需要重定向以使事情复杂化。