我建設有笨的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');
加入 '會話'
嗯,它看起來是工作。我想知道這是多麼安全? – NVO