CodeIgniter разрешает доступ к определенным контроллерам только при входе в систему - PullRequest
4 голосов
/ 07 января 2010

У меня есть несколько контроллеров CodeIgniter, к которым должны обращаться только те пользователи, которые вошли в систему (т. Е. Где $ this-> session-> userdata ('username') не равно нулю). Если лицо, не прошедшее проверку подлинности, пытается получить доступ к указанным контроллерам, они должны получить:

header('location: /auth/login');

Должен быть лучший способ сделать это, чем поставить

if (!$this->session->userdata('username'))
    header('location: /auth/login');
else
{
    [rest of function]
}

перед каждой функцией в контроллере ...

Я знаю, что DX_Auth имеет аналогичную функциональность, но я не использую плагин аутентификации и не готов к этому.

Спасибо!
Мало

1 Ответ

5 голосов
/ 07 января 2010

Проверка имени пользователя при создании класса, поэтому не имеет значения, к какой функции обращается пользователь, проверяет переменную сеанса и перенаправляет на страницу входа в случае сбоя:

function className()
{
    parent::Controller();
    if(!$this->session->userdata('username')) header('location: /auth/login');
}

Это способ вызова __constructor или его эквивалента в codeigniter при создании controllers/models, или, по крайней мере, это то, что я понял!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...