Codeigniter与Facebook注销无法正常工作

时间:2015-03-04 11:43:31

标签: php facebook codeigniter

我创建了一个Facebook登录页面,但问题是Facebook注销无法正常工作 我想从我的应用程序注册用户,以及点击注销按钮时的Facebook 这是我的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");
} 

1 个答案:

答案 0 :(得分:1)

我也遇到了这个错误,我还在本地测试的快速修复方法是在登录控制器的末尾创建一个注销功能,然后销毁会话并重定向到登录页面。

namespace Testing.iOS
{
    public partial class ViewController : UIViewController
    {    
        public ViewController () : base ("ViewController", null)
        {
        }

        public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();

            tableView.RegisterNibForCellReuse (CustomCell.Nib, "CustomCell");
            tableView.Source = new CustomCell.TableSource();
        }

        public override void DidReceiveMemoryWarning ()
        {
            base.DidReceiveMemoryWarning ();
        }

        public void updateLabel()
        {
            label.Text = "testing";
        }
    }
}

如果有帮助请告诉我。

感谢