0

何らかの理由で、Facebook(つまり、facebook.com)にログインするたびに、Facebook SDKを使用している私のWebサイト(2回の更新後)でユーザーが自動的に認証されます。getLoginUrl()しかし、奇妙なことに、ユーザーは、ここで何が起こっているのかを使用して生成した、生成されたログインURLをクリックする必要がありません。以下は、ユーザーがログインしているかどうかを確認するための私の関数です。

function IsUserLoggedIn()
{
    $ci=& get_instance();

          try
          {
            $me = $ci->facebook->api('/me');
            $user = $ci->facebook->getUser();

              if ($me&&$user)
                {
                  //These var dumps show the right info.
                  var_dump($user);
                  var_dump($me);
                  return TRUE;   
                }


          } 
          catch (FacebookApiException $e) {
            //User is not logged in


             $ci->load->library('session');

                    $user_id = $ci->session->userdata('user_id');
                    $is_user_logged_in =  $ci->session->userdata('logged_in');

                    if(($user_id != FALSE)&&($is_user_logged_in != FALSE))
                    {
                        return TRUE;
                    }
                    else
                    {   
                        return FALSE;
                    }
          }

}
4

1 に答える 1

0

ユーザーが Facebook 経由でログインすると、ロードした SDK は関連付けられた Facebook Cookie を自動的にチェックするため、ユーザーは Web サイトにも既にログインしています。

try
          {
            $me = $ci->facebook->api('/me'); //The user has an active session, no matter if that was from facebook login or from website login using Facebook SDK
            $user = $ci->facebook->getUser(); //So you successfully get the user data

              if ($me&&$user)
                {
                  //These var dumps show the right info.
                  var_dump($user);
                  var_dump($me);
                  return TRUE;   
                }


          } 
于 2013-01-30T20:37:34.350 に答える