1
我得到重定向循環,我還無法弄清楚我在哪裏做錯了。Facebook連接給予重定向循環
下面是我的應用程序設置:
的config.php
session_start();
//Facebook App Id and Secret
$appID='xxx';
$appSecret='xxxxxxx';
$base_url = "http://localhost/xxx/fbsource/Source3/facebook/";
的index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login with Facebook</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/oauthpopup.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#facebook').click(function(e){
$.oauthpopup({
path: 'login.php',
width:600,
height:300,
callback: function(){
window.location.reload();
}
});
e.preventDefault();
});
});
</script>
</head>
<body>
<?php
session_start();
if(!isset($_SESSION['User']) && empty($_SESSION['User'])) { ?>
<img src="images/facebook.png" id="facebook" style="cursor:pointer;float:left;margin-left:550px;" />
<?php } else{
echo '<img src="https://graph.facebook.com/'. $_SESSION['User']['id'] .'/picture" width="30" height="30"/><div>'.$_SESSION['User']['name'].'</div>';
echo '<a href="'.$_SESSION['logout'].'">Logout</a>';
}
?>
</body>
</html>
的login.php
<?php
require 'config.php';
require 'lib/facebook/facebook.php';
$facebook = new Facebook(array(
'appId' => $appID,
'secret' => $appSecret,
));
//get the user facebook id
$user = $facebook->getUser();
$base_url = "http://localhost/xxx/fbsource/Source3/facebook/";
if($user){
try{
//get the facebook user profile data
$user_profile = $facebook->api('/me');
$params = array('next' => $base_url.'logout.php');
//logout url
$logout =$facebook->getLogoutUrl($params);
$_SESSION['User']=$user_profile;
$_SESSION['logout']=$logout;
}catch(FacebookApiException $e){
error_log($e);
$user = NULL;
}
}
if(empty($user)){
//login url
$loginurl = $facebook->getLoginUrl(array(
'scope' => 'email,read_stream, publish_stream, user_birthday, user_location, user_work_history, user_hometown, user_photos',
'display'=>'popup'
'redirect_url'=> $base_url."login.php";
));
header('Location: '.$loginurl);
}
?>
<!-- after authentication close the popup -->
<script type="text/javascript">
window.close();
</script>
我測試了Chrome和IE10
是否有錯誤?哪個頁面有循環?你需要從'config.php'中刪除'session_start();'因爲facebook php SDK文件提供了 –
沒有錯誤。我在login.php上獲取重定向 – Volatil3
將你的文件上傳到公共服務器,它應該可以工作,因爲**'localhost' **無法通過Facebook –