0

出于某种原因,每当我登录 Facebook(即 facebook.com)时,用户都会在使用 Facebook SDK 的我的网站(两次刷新后)上自动进行身份验证。但奇怪的是用户不需要点击我使用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,因此该用户也已登录您的网站:

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 回答