在生产服务器codeigniter 3.1.2(PHP)会话销毁从Facebook图形API自动重定向?

Rab*_*zai 8 php session redirect facebook codeigniter

codeigniter会话销毁从图形APi facebook重定向一段时间它的工作和一段时间它破坏会话并带一个用户登录页面

这是Config.php会话代码

$config['see_driver'] = 'database';
$config['see_cookie_name'] = 'ci_session';
$config['see_expiration'] = 0;
$config['see_save_path'] = 'ci_sessions';
$config['see_match_ip'] = FALSE;
$config['see_time_to_update'] = 10000;
$config['see_regenerate_destroy'] = FALSE;
Run Code Online (Sandbox Code Playgroud)

这就是我在登录后设置用户会话并在User_controller.php中从数据库进行身份验证的方式

private function __set_user_session($user)
    {
        if(isset($user))
        {
            $data = [
                'user_id' => $user['id'],
                'ilocal_user_id' => $user['ilocal_user_id'],
                'package_id' => $user['package_id'],
                'no_available_business' => $user['no_available_business'],
                'name' => $user['name']
             ];

            $this->session->set_userdata($data);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在面书连接和重定向之后,这个方法被调用并且它在登录页面上自动重定向到用户我不知道他为什么要破坏一个会话

public function connect_facebook_account($business_id)
    {
        $this->__load_business($business_id);
        try
        {
            if(isset($this->data['business'] ))
            {
                $this->fb = new Facebook();
                $this->data['facebook_url'] =  $this->fb->get_login_url($business_id);
                if(isset($_GET['code']))
                {
                    $social_acccount_info = $this->fb->fetch_access_token();
                    if($social_acccount_info['status'] === TRUE)
                    {
                        $social_acccount_info['business_id'] = $business_id;
                        // save data of connected account
                        $this->__create_social_account($social_acccount_info);

                        redirect($this->session->social_page_redirect);
                    }
                }

                if (is_page_connected($business_id) === NULL)
                {
                    $this->data['pages'] = $this->fb->fetch_facebook_pages($business_id);
                }


            }

        }
        catch(Exception $e)
        {
            $this->session->set_userdata('message', $e->getMessage() );
        }

    }
Run Code Online (Sandbox Code Playgroud)

这段代码在localhost上正常工作,有时也可以在生产服务器上运行,但大部分时间它会在生产中销毁会话但在本地机器上工作?

任何解决方案

Jc *_*lan 0

这是一个常见问题,几个月前我花了相当多的时间来跟踪。本文包含一个很好的解决方法,尽管不是完整的解决方案......通常来说,它就像一个魅力。

http://blog.thecodingbox.me/codeigniter-frequent-session-expiration-fix/