如何使用Ionic 3应用程序管理Codeigniter会话?

时间:2018-09-25 06:40:05

标签: php codeigniter ionic-framework ionic3

我已经开发了Codeigniter后端,并且希望与Ionic 3应用程序使用相同的控制器。 Ionic 3登录可与后端控制器完美配合,并创建会话,我将用户数据存储在会话变量中。登录成功后,当我通过Ionic 3访问另一个控制器时,该会话中没有任何用户数据。我需要保留会话数据,直到它在注销时销毁为止,因为无论用户是否登录,每次控制器访问都使用用户数据。这是我的代码。

//main login function
function user_login(){

    //Allow Cross origin
    header('Access-Control-Allow-Origin:*');

    $username = $this->input->post('username');
    $password = MD5($this->input->post('password'));

    $data = array('status'=>false,'message'=>'','data'=>'');

    //check a session exists,if not create new
    if(!$this->session->userdata('username')){
        $user_data = array(
                'username' => $username,
                'attempts' => 0,
                'logged_in' => false
        );
        $this->session->set_userdata($user_data);
    }

    $attempts = $this->session->userdata('attempts'); //get number of tried attempts

    $this->session->set_userdata('attempts',($attempts + 1));//increse number of attempts from one



    {
        $lognError = $this->login_model->get_data_from_login_error_table($username);
        $b = true;

        if(sizeof($lognError) > 0){

            $trialsCount = $lognError['trials_count']; //get number of attempts that tried

            if($trialsCount >= 25){

                $b = false;
            }
        }

        if($b == true){

            $is_login = $this->login_model->login($username,$password);

            if($is_login != null) {

                $this->session->set_userdata('loged_in', true);
                $this->session->set_userdata($is_login);
                $this->session->set_userdata('user_details', $user_details);
            } else {
                $data['status'] = false;
                $data['message'] = 'Incorrect username or password';
            }
        }

    }
    // }
    echo json_encode($data);
}

//检查用户是否登录

public function is_login(){

    $details = $this->session->userdata('username');
    $is_loged_in = $this->session->userdata('loged_in');

    if(!$details || !$is_loged_in) {
        redirect('login');
    }
}
当我通过Ionic 3访问时,

$ this-> session-> userdata('username')返回null,但在浏览器上可以正常工作。如何在ionic 3中使用PHP后端?

帮我解决这个问题。 谢谢你。

0 个答案:

没有答案