我試圖通過facebook登錄激活cookie,所以它並不總是依賴於那裏的會話,但每當我設置sharedSession
爲true時,我得到一個「頁面isn 't重定向正確「錯誤頁面。這是我想讓它的方式,所以Facebook登錄使用Cookie?我在facebook上使用了github上的最新代碼(今天下載了一個新手) - >https://github.com/facebook/facebook-php-sdkfacebooks sharedSession返回「頁面沒有正確重定向」
我沒有使用JavaScript SDK。在發送任何頭文件之前,下面的所有編碼都會被觸發。如果我拿出sharedSession
,它會正確登錄我,但它不會存儲所需信息的cookie。
繼承人我使用
$facebook = new Facebook(array(
'appId' => $Sets['facebook']['appId'],
'secret' => $Sets['facebook']['appSecret'],
'sharedSession' => true,
// 'trustForwarded' => true
));
$user = $facebook->getUser();
if($user){
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
$user = null;
}
}
// the user is logged into facebook
if($user){
// I register them on my website..
// and then send them to the index page
header('Location: /index.php');
} else {
// they are not registered through facebook
if(isset($_GET['error'])){
// this happens when an error is found
die($_GET['error'].' error');
// header("Location: /login/?error=".urlencode($_GET['error']));
exit;
} else {
// send to facebook to log them in.
$loginUrl = $facebook->getLoginUrl($Sets['facebook']['scope_array']);
// die('sending to '.$loginUrl);
header("Location: ".$loginUrl);
exit;
}
}
你可以看到我把die()
功能的任何重定向之前就有的編碼,這是對我的結束調試,看是否我可以計算出它是失敗,但它似乎發生後,用戶返回到網站..我也試過trustForward => true,但那並沒有解決它..
我所追求的是能夠讓用戶登錄在更長的時間內,每次訪問網站時都不必通過Facebook登錄。
發生什麼事情是用戶被困在一個循環試圖登錄Facebook被重定向到Facebook和我的網站之間,因爲用戶從未被驗證過。當我設置'sharedSession' => true
我試圖讓facebook sdk存儲從我的網站上的cookie到試圖登錄但沒有cookie被設置的個人計算機上。
我正在嘗試做1)設置facebook cookie。現在在我的腳本中使用上面的代碼,沒有cookie在用戶登錄時被設置爲geting。這是在github上使用最新版本的facebook php sdk。 和'$ Users-> loginWithOauth'是我註冊用戶的腳本。 – Yohn 2013-03-12 07:18:43
你的oauth進程不是很清楚,你應該先按照facebook服務器端的認證流程獲取代碼;在用戶授權您的應用程序後,Facebook會調用回調頁面,這是您發佈的腳本;你可以在這一步運行任何登錄邏輯。同樣,facebook cookie(fbsr_xxxx)由Facebook設置,而不是由您設置。請參考文章https://developers.facebook.com/docs/howtos/login/server-side-login/,希望這有幫助 – fuyi 2013-03-12 11:47:34
我更新了一些最初的問題。我正在使用 - > https:// github。com/facebook/facebook-php-sdk,這是由Facebook推薦的。我遵循與示例登錄頁面相同的做法 - > https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php登錄用戶。一旦用戶被確認在接受用戶在我的網站上註冊的所有內容之後,通過facebook,但沒有設置cookie。那就是當我發現我們應該在Facebook的類配置中使用'sharedSession'=> true',那當我陷入重定向循環 – Yohn 2013-03-12 20:42:21