私は codeigniter を使用しており、ユーザーが登録されていない場合はユーザーをログインまたは登録するか、Facebook にログインしていない場合は Facebook ログインを促すコントローラーがあります。
現在私が抱えている問題は、Cookie が無効になっている場合、コントローラーがそれらを正常にログインし ($user を var_dumped して問題ありませんでした)、別のコントローラーにリダイレクトして、ユーザーが何らかの形でログアウトしているページを表示することです。 (var_dump ユーザーは空の配列を提供します)。
Facebookキャンバスの外で同じことをすれば、すべてうまくいきます。
public function login_fb()
{
require './assets/fb_sdk/src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'app_id',
'secret' => 'secret id',
'cookie' => false // i tried it for true as well
));
// See if there is a user from a cookie (even if cookies are disabled it works)
$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) {
echo '<pre>' . htmlspecialchars(print_r($e, true)) . '</pre>';
$user = null;
}
$f_id = $user_profile['id'];
// log in user
$identity = $f_id;
$password = "some-password";
$remember = TRUE; // remember the user
$this->ion_auth->login($identity, $password, $remember);
// update token
$data = array (
'access_token'=> $token
);
$this->db->where ('username',$f_id);
$this->db->update ('users',$data);
$user_ion = $this->ion_auth->user()->row();
//var dump on user_ion will give user information all good
header('Location: '.base_url().'deals');
}
リダイレクト後、すべてのログイン情報が失われ、
$user = $this->ion_auth->user()->row();
空の配列を返します。Facebookキャンバスの下にない場合、これはすべて正常に機能します。どんな助けでも大歓迎です。