Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter API会话_Php_Codeigniter_Api_Session - Fatal编程技术网

Php Codeigniter API会话

Php Codeigniter API会话,php,codeigniter,api,session,Php,Codeigniter,Api,Session,我正在为IOS应用程序编写api 我对IOS应用程序的会话处理有些担心 当用户从iphone登录时,我需要将会话id作为登录响应传递并使用该会话id 在验证用户的进一步api调用中 我在api控制器中所做的是获取会话id并将其与用户详细信息一起保存到会话数组中,然后将会话id作为响应传递 $session = $this->session->userdata('session_id'); $user_array = array( 'email' =&g

我正在为IOS应用程序编写api 我对IOS应用程序的会话处理有些担心

当用户从iphone登录时,我需要将会话id作为登录响应传递并使用该会话id 在验证用户的进一步api调用中

我在api控制器中所做的是获取会话id并将其与用户详细信息一起保存到会话数组中,然后将会话id作为响应传递

  $session = $this->session->userdata('session_id');
        $user_array = array(

     'email' => $user->email,     
       'session_id'=>$session
                   );
      $this->session->set_userdata('logged_in', $user_array);

     $output = array(
                            'code'=>200,                            
                            'user'=>$user,
                            'session_id'=>$session
                   );
                   $this->output
                       ->set_content_type('application/json')
                       ->set_output(json_encode($output));
对于进一步的api调用,我将获取session_id作为参数

我检查了它是否是有效的部分,或者没有使用以下内容。代码

 $session_id =  $this->input->get('session_id', TRUE);
        if($session_id){
            if($this->session->userdata('logged_in')){
                $user =  $this->session->userdata('logged_in');
                 if($user['session_id'] == $session_id){
              // valid session
}
当与邮递员一起测试时,该方法效果良好

但我不确定,这是处理API调用会话的正确方法

当从IOS应用程序运行时,同样的功能会起作用吗


提前感谢

您使用的是无状态的REST api方法,因此从IOS应用程序调用时不会维护会话。您从应用程序拨打的每个电话都将有一个新会话

如果在调用API时确实需要维护会话,则必须将SOAP用作web服务

有关更多信息,请查看