我非常困在这里。 我正在尝试使用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;
}