2015-03-04 3 views
1

Я сделал страницу входа в facebook, но проблема заключается в том, что мой выход на facebook не работает. Я хочу вывести пользователя из приложения, а также facebook, когда они нажимают кнопку выхода из системы. вот мой логин и логин. это уже неделя, и я не могу решить этот вопрос до сих пор ... Пожалуйста, помогите мнеCodeigniter с выходом из facebook не работает

Войти

function login(){  

    if ($this->user) { 
    try { 

     $user_profile = $this->facebook->api('/me');  

     if (!empty($user_profile)) { 

     $this->session->unset_userdata("uFname"); 
     $this->facebook->destroysession(); 
     $this->session->sess_destroy(); 


     $logout_url =$this->facebook->getLogoutUrl(array('next' =>base_url().'facebook/logout','access_token'=>$this->facebook->getAccessToken())); 
     $this->session->set_userdata("logoutUrl",$logout_url); 


      $this->load->model("login_m"); 


     $uid=$user_profile['id']; 
     $email=((isset($user_profile['email']))?("$user_profile[email]"):("")); 
     $dob=((isset($user_profile['dob']))?("$user_profile[dob]"):("")); 
     $mbl=((isset($user_profile['mobile']))?("$user_profile[mobile]"):("")); 


     $userdata=$this->login_m->checkUser("facebook", $uid, $email); 


     if(!empty($userdata)){ 

      $user_id=$userdata[0]['id']; 

      $this->session->set_userdata("uid", $user_id); 

      $hash=md5(rand(0, 1000)); 
      $this->login_m->save($user_id, array(
      "first_name"=>$user_profile['first_name'], 
      "last_name"=>$user_profile['last_name'], 
      "email"=>$email, 
      "dob"=>$dob, 
      "mobile"=>$mbl, 
      "gender"=>$user_profile['gender'], 
      "open_id"=>$uid, 
      "oauth_provider"=>"facebook", 
      "active"=>$user_profile['verified'], 
      "hash"=>$hash 
     )); 

      header("Location: http://localhost:8888/example/dashboard/"); 

     } 



     }else{ 
     # For testing purposes, if there was an error, let's kill the script 
     die("There was an error."); 
     } 

    }catch(FacebookApiException $e){ 
     $this->facebook->destroySession(); 
     error_log($e); 
     $this->user = null; 
    } 
    }else{ 

    $loginUrl = $this->facebook->getLoginUrl(array(
     'scope' => 'email,read_stream,offline_access,user_birthday,user_photos, user_relationships,user_about_me' 
    )); 
    redirect($loginUrl); 

    } 

} 

выхода из системы

function logout(){ 
    $this->facebook->setAccessToken(''); 
    $sessionArray=array(
    "uid"=>'', 
    "uFname"=>'', 
    "uLname"=>'', 
    "uemail"=>'' 
); 

    $this->session->unset_userdata($sessionArray); 
    $this->session->sess_destroy(); 
    $this->facebook->destroySession(); 

    setcookie('PHPSESSID', '', time()-3600, "/"); 
    setcookie ("fbss_XXXXXXXXXX", "", time()-3600); 
    // setcookie ("fbs_205733472943681", "", time() – 3600); 
    unset($_SESSION); 
    session_destroy(); 

    header("Location: ".base_url()."auth/showlogin"); 
} 

ответ

0

Я также был запущен в этом ошибка, быстрое исправление, которое я все еще тестирую локально, - это создать функцию выхода из системы в конце вашего контроллера входа и уничтожить сеанс и перенаправить на страницу входа.

function logout() { 
    session_destroy(); 
    redirect('/login'); 
} 

дайте мне знать, если это поможет.

спасибо

Смежные вопросы