Как проверить, вошел ли пользователь в систему? - PullRequest
4 голосов
/ 19 июля 2010

Я использую CodeIgniter Framework для PHP. Есть несколько страниц, которые предназначены исключительно для администратора, и они расположены в Admin/*. Когда пользователь входит в систему, я сохраняю некоторое значение в сеансе как флаг и проверяю его в моем контроллере, чтобы проверить, зарегистрирован ли пользователь или нет. Я написал код для проверки сеанса в каждом методе в моем контроллере. Но потом я понял, что не хочу писать одну и ту же строку кода в каждом методе, так как многие проблемы создаются с точки зрения удобства обслуживания. Затем я решил создать эксклюзивный контроллер, который будет загружать только административные представления и, таким образом, в его конструкторе я проверяю значение сеанса. Есть ли другой метод, кроме этого подхода. Я делаю это правильно? Или любой другой безопасный механизм доступен в CodeIgniter?

Ответы [ 3 ]

4 голосов
/ 19 июля 2010

Вы выбрали один из лучших подходов (мое мнение), просто сделайте так, чтобы другие контроллеры администратора расширялись от этого контроллера, чтобы у вас могли быть специализированные контроллеры (блог администратора, галерея администратора и т. Д.). Если вам нужна помощь, я с удовольствием вам помогу.

1 голос
/ 19 июля 2010

Например:

class Admin extends Controller {

 function __construct()
 {
     parent::__construct(); 
     $this->is_logged_in();
 }

 function is_logged_in()
 {

   $is_logged_in = $this->session->userdata('is_logged_in');
   if(!isset($is_logged_in) || $is_logged_in != true) 
   {
     redirect('login');
   }
 }
1 голос
/ 19 июля 2010

вы можете сделать это в вашем методе конструктора примерно так:

function __construct {
    parent::construct();
    /* Do you login check here */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...