注销Facebook的连接会话(logout facebook connect session)

2019-09-16 21:21发布

我想我的网站与Facebook连接集成到Facebook的处理注册和Facebook登录。 我使用笨框架。 但我现在得到了这个问题:

  1. 目前Facebook登录的用户是“测试1”。 我去我的网站与Facebook签约,一切工作正常,“测试1”的信息都存储在我的数据库。 不过,我登录后test1的出来自Facebook和登录在Facebook上“测试2”,我回到我的网站,并再次做与Facebook一注册,它仍然是“测试1”的信息存储。

  2. 我用离子权威性库从我的网站处理用户注销。 然而,当我切换Facebook的测试用户帐户,并做了“登录与Facebook”了,但它仍然得到了以前的Facebook用户。

基于2例以上,似乎Facebook的会议不及时清理? 我挣扎在这个问题上很长一段时间,请大家帮忙!

我这个用户获取用户数据:$ fb_usr = $这个 - > fb_connect->用户; (似乎不管怎么facebook的用户姓张,fb_connect总是返回相同的用户)

和fb_connect是这样的某物:

    <?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
}

Answer 1:

我认为你需要做的是将“下一个”参数为您getLogoutUrl()调用。 事情是这样的:

$args['next'] = site_url('logout'); // replace "logout" with your controller which will clear the session
$fbLogoutURL = $facebook->getLogoutUrl($args);

然后,在设置控制器“下一个”你需要清除会话数据。

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

让我知道是否有帮助。



文章来源: logout facebook connect session