Codeigniter RESTServer сессия

Я строю API с CodeIgniter и реализацией RestServer из https://github.com/chriskacerguis/codeigniter-restserver

Я хочу использовать режим аутентификации «сессия», поэтому я устанавливаю это в config / rest.php:

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

в config / 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;

У меня есть контроллер Auth, который имеет следующий код:

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.
pr выводит данные (pr определяется в хуках и выполняет print_r ($ data))

Но .. когда я запускаю контроллер, расширяющий REST_Controller, я всегда получаю ошибку {«status»: false, «error»: «Unauthorized»}.

Я много искал, но не могу найти решение для этого (или никто не использует метод авторизации ‘сеанса’?), Но, может быть, кто-то здесь знает решение?

Спасибо!

РЕДАКТИРОВАТЬ: контроллер для одной из моих функций 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
Я добавил сессию в config / autoload.php

$autoload['libraries'] = array('database','session');

0

Решение

Проверьте это.

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

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

Тогда ваш конфиг например

$ config [‘auth_source’] = ‘last_name’;

1

Другие решения

это не ошибка

вы должны записать переменную сеанса в

$config['auth_source'] = '';

я пишу этот код и решил проблему (поместите выше вниз код в config / rest.php)

$config['auth_source'] = '__ci_last_regenerate';

больше информации в piero.ir

0

По вопросам рекламы [email protected]