2016-04-25 96 views
0

我建設有笨的API,並從https://github.com/chriskacerguis/codeigniter-restserver笨RESTServer會議

的RestServer實現我要使用的「會話」的認證方式,所以我設置這在配置/ rest.php:

$config['rest_auth'] = 'session'; 
$config['auth_source'] = 'userdata'; 

在配置/ config.php中:

$config['sess_driver'] = 'database'; 
$config['sess_cookie_name'] = 'ci_session'; 
$config['sess_expiration'] = 7200; 
$config['sess_save_path'] = 'ci_sessions'; 
$config['sess_match_ip'] = FALSE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = FALSE; 

我有有以下代碼的控制器驗證:

class Auth extends My_Controller 
{ 

    public function __Construct(){ 
     parent::__construct(); 

    } 

    public function index(){ 


     $user = array(
      "id" => "1", 
      "first_name" => "First", 
      "insertion" => "", 
      "last_name" => "Last" 
     ); 

     $this->session->userdata = $user; 

     pr($this->session->userdata); 
    } 
} 

會話存儲在數據庫中,幷包含$ user的數據。但是..當我運行一個控制器女巫擴展了REST_Controller我總是得到一個{「狀態」:false,「錯誤」 :「未經授權」}錯誤。

我已經搜索了很多,但我找不到解決方案(或沒有人使用'會話'auth方法?),但也許有人在這裏知道解決方案?

謝謝!

編輯:控制器,用於我的API函數之一:

class Club extends REST_Controller 
{ 
    function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('Club_model');   
    } 

    public function index_get(){ 
     if(!$this->get('id')){ 
      $clubs = $this->Club_model->get_all_clubs(); 
     }else{ 
      $clubs = $this->Club_model->get_club($this->get('id')); 
     } 

     if($clubs){ 
      $this->response($clubs, 200); 
     }else{ 
      $this->response(null, 404); 
     } 
    } 

編輯2:autoload.php 我在配置/ autoload.php

$autoload['libraries'] = array('database','session'); 
加入 '會話'

回答

1

測試這個。

$user = array(
     "id" => "1", 
     "first_name" => "First", 
     "insertion" => "", 
     "last_name" => "Last" 
    ); 

    $this->session->userdata = $user; 

然後你的配置例如

$配置[ 'auth_source'] = '姓氏';

+0

嗯,它看起來是工作。我想知道這是多麼安全? – NVO

0

這不是錯誤

你必須寫在

$config['auth_source'] = ''; 

我寫這篇文章的代碼和解決的問題(erplace上面的配置/ rest.php按下碼)

$config['auth_source'] = '__ci_last_regenerate'; 
會話變量

更多信息在piero.ir