2012-04-30 11 views
0

FacebookのサインアップとFacebookのログインを処理するために私のサイトとFacebookの接続を統合しようとしています。私はcodeigniterフレームワークを使用しています。しかし、私は今この問題を抱えています:ログアウトfacebook接続セッション

  1. 現在のFacebookのログインユーザーは "test1"です。私はFacebookにサインアップするために自分のサイトに行き、すべて正常に動作し、 "test1"の情報は私のデータベースに保存されています。しかし、私がfacebookからtest1をログアウトし、facebookに "test2"とログインした後、私は自分のサイトに戻ってfacebookで再度サインアップします。それでも "test1"の情報は保存されています。

  2. 私は自分のサイトからのユーザーログアウトを処理するためにion auth libraryを使用しています。しかし、私はfacebookテストのユーザーアカウントを切り替えて "facebookでログイン"をやり直すと、以前のfacebookユーザーを取得します。

上記の2つのケースに基づいて、フェイスブックセッションがクリアされていないようですか?私は長い間この問題に苦しんでいます、助けてください!

私はこれを利用してユーザーデータを取得します: $ fb_usr = $ this-> fb_connect-> user;

とfb_connectはこのようなSTHである(fb_connectが常に同じユーザーを返すか、FacebookのユーザーChangsの、どんなにているようです):

<?php 
     include(APPPATH.'libraries/facebook/facebook.php'); 

     class Fb_connect extends Facebook{ 

      //declare public variables 
      public $user   = NULL; 
      public $user_id  = FALSE; 

      public $fbLoginURL = ""; 
      public $fbLogoutURL = ""; 

      public $fb   = FALSE; 
      public $fbSession = FALSE; 
      public $appkey  = 0; 

      //constructor method. 
      public function __construct() 
      { 
         $CI = & get_instance(); 
         $CI->config->load("facebook",TRUE); 
         $config = $CI->config->item('facebook'); 
         parent::__construct($config); 
         $this->user_id = $this->getUser(); // New code 
         $me = null; 
         if ($this->user_id) { 
          try { 
           $me = $this->api('/me'); 
           $this->user = $me; 
           } catch (FacebookApiException $e) { 
            error_log($e); 
           } 
       } 

       if ($me) { 
        $this->fbLogoutURL = $this->getLogoutUrl(); 
       } else { 
        $this->fbLoginURL = $this->getLoginUrl(); 
       }   
      } //end Fb_connect() function 
} 

答えて

1

私はあなたが何をする必要があるかと思いますが、「次」に設定されていますあなたのgetLogoutUrl()コールのためのparam。

コントローラで「次へ」を設定すると、セッションデータを消去する必要があります。

class Logout extends CI_Controller { 
    public function index() { 
     $facebook->destroySession();  
     $this->session->sess_destroy(); // Assuming you have session helper loaded 
     $this->load->view('logout'); 
    } 
} 

これが役立つかどうかを教えてください。

+0

また、コントローラで$ facebook-> destroySession()を呼び出す必要があると思います。 (これを含む元の編集を編集) – ametren

+0

こんにちは@ametren、はい、確かに、私はdestroysession関数を呼び出すことを忘れたことを知った...ありがとう! – Mario

+0

私のセッションは決して破壊されない – nicky

関連する問題