Facebookログインを介してCookieをアクティブ化しようとしているので、セッションが存在するかどうかに依存するわけでsharedSession
はありませんが、trueに設定すると、「ページが正しくリダイレクトされていません」というエラーページが表示されます。 FacebookのログインがCookieを使用するようにするとしますか?フェイスブックSDK用にgithubの最新コードを使用しています(今日新しくダウンロードしました)-> https://github.com/facebook/facebook-php-sdk
javascriptSDKを使用していません。以下のコーディングはすべて、ヘッダーが送信される前に実行されます。取り出した場合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()
。これは、失敗した場所を特定できるかどうかを確認するためにデバッグするためのものですが、ユーザーがWebサイトに戻った後に発生するようです。 trustForward => trueですが、修正されませんでした。
私が求めているのは、ユーザーがWebサイトにアクセスするたびに、Facebookからログインしなくても、ユーザーがより長期間ログインできるようにすることです。
何が起こっているのかというと、ユーザーはFacebookにログインしようとしてループに陥り、Facebookと私のWebサイトの間でリダイレクトされます。これは、ユーザーが確認されないためです。繰り返しますが、これは私が設定したときにのみ発生します'sharedSession' => true
Facebook sdkに、自分のWebサイトからログインしようとしている人のコンピューターにCookieを保存させようとしていますが、Cookieが設定されていません。