Facebook登录系统登录后立即注销

时间:2018-09-04 19:48:33

标签: facebook-graph-api facebook-php-sdk codeigniter-3 facebook-login

我非常困在这里。 我正在尝试使用Facebook Graph api构建应用程序,以便用户可以登录。

我已经在我的php框架(codeigniter)中对其进行了结构化。 但是无论如何,无论何时尝试登录,我都会无所适从。

我已经在每个可能的返回值的地方调试了它,并成功返回了正确的值,但是每当渲染视图时,它都会重定向到注销功能,并且在尝试任何登录后都会注销。

配置文件

$config['fbAppId'] = 'somenumbers';
$config['fbAppSecret'] = 'somenumbers';
$config['fbLoginType'] = 'web';
$config['fbLoginRedirectURL'] = 'posts/add_a_post/';
$config['fbLogoutRedirectURL'] = 'posts/logout/';
$config['fbPermissions'] = array('email', 'user_gender');
$config['fbGraphVersion'] = 'v3.1';
$config['fbAuthOnLoad'] = TRUE;

后置控制器

public function add_a_post()
{
    if( strlen( $this->input->post( 'isSecured' ) ) > 0 ):
        $jumper_text = $this->input->post( 'isSecured' );
        $is_secured = $this->Posts_Model->check_secure_jumper( $jumper_text );
        if( $is_secured === $this->nextPhaseToken ):
            $view_data['categories'] = $this->Posts_Model->get_data('category');
            $view_data['id'] = $this->input->post( 'id' );
            $view_data['allFiles'] = $this->Posts_Model->get_data($this->filesTbl, array(
                "advert_id" => $view_data['id']
            ), 'DESC');
            $this->load->view( 'gen_users/advertisment_posting_view_second', $view_data );
        else:
            echo "<pre>"; var_dump( $is_secured ); echo "</pre>";
        endif;
    else:

        $loginData = $this->register();
        // echo "<pre>";var_dump( $loginData );echo "</pre>";
        // exit;
        $primary_key = 'id';

        $view_data['divisions'] = $this->Posts_Model->get_data('divisions');
        $view_data['loginData'] = $loginData;
        // var_dump($this->session->all_userdata());
        // echo "<pre>"; var_dump($view_data); echo "</pre>";
        // exit();
        $this->load->view('gen_users/advertisment_posting_view', $view_data);
    endif;

}

public function register()
{
    $data = array();

    // Load facebook library
    $this->load->library('Facebook');

    $userData = array();

    // Check if user is logged in
    if($this->facebook->is_authenticated()){
      // Get user facebook profile details
      $fbUserProfile = $this->facebook->request('get', '/me?fields=id,first_name,middle_name,last_name,email,gender,picture');
      // var_dump($fbUserProfile); exit;
      // Preparing data for database insertion
      $userData['social_login'] = 'facebook';
      $userData['oauth_uid'] = $fbUserProfile['id'];
      $userData['first_name'] = $fbUserProfile['first_name'];
      $userData['middle_name'] = $fbUserProfile['middle_name'];
      $userData['last_name'] = $fbUserProfile['last_name'];
      $userData['email'] = $fbUserProfile['email'];
      $userData['gender'] = $fbUserProfile['gender']==="male"? 1: 0;
      $userData['picture'] = $fbUserProfile['picture']['data']['url'];
      $userData['user_role'] = 'user';

      // Insert or update user data
      $userID = $this->Posts_Model->checkUser($userData);
      // echo "<pre>";var_dump($userID);echo "</pre>";
                // exit();


      // Check user data insert or update status
      if(!empty($userID)){

          $data['userData'] = $userData;
          $this->session->set_userdata('role', 'user');
          $this->session->set_userdata('userId', $userID);
          // Get logout URL
          $data['logoutURL'] = $this->facebook->logout_url();
          $this->session->set_userdata("isLoggedIn", 1);
      }


  }else{
      // Get login URL
      $data['authURL'] =  $this->facebook->login_url();
      $this->session->set_userdata("isLoggedIn", 0);

  }
        // echo "<pre>";var_dump($data);echo "</pre>";
        // echo "<pre>";var_dump($this->session->all_userdata());echo "</pre>";
        // exit;
    return $data;
}

0 个答案:

没有答案
相关问题