CodeIgniter: маршрутизация и аутентификация - PullRequest
0 голосов
/ 16 января 2012

Идея состоит в том, чтобы перехватить любой доступ к функциям контроллера и, если мы аутентифицированы, выполнить маршрутизацию в обычном режиме и, если нет, показать форму входа в систему.

Вопрос в том, является ли _remap function лучшим местом для проверки доступа к функциям контроллера и как передать маршрутизацию обратно в CI в случае, если мы аутентифицированы?

Ответы [ 2 ]

1 голос
/ 16 января 2012

создайте библиотеку с именем Authentication и проверьте ваш метод в этом

вы можете получить имя метода и класса по этому

$class = $this->CI->router->class;
$method = $this->CI->router->method;

и для проверки этой аутентификации каждый раз, когда вы включаете hooks из своего конфигурационного файла, присоедините хук post_controller_constructor для проверки аутентификации каждый раз.

1 голос
/ 16 января 2012

_remap для этого не нужно.Вы можете использовать его, но вам не нужно.

Проверьте доступ в методе __construct() контроллера.Вы можете получить текущий метод через $this->router->fetch_method() и выполнить аутентификацию на этом уровне.

Еще лучше, пусть все ваши контроллеры, которым это необходимо, расширяют базовый контроллер (он же "MY_Controller").Вы можете написать Auth_Controller и выполнить проверку подлинности в __construct() там.Вы можете получить текущий класс с помощью $this->router->fetch_class(), а также метод, просто убедитесь, что ваши контроллеры, которым нужно это расширение Auth_Controller вместо обычного CI_Controller.

Если они не должны иметь доступа, просто перенаправьте их туда, куда нужно, или покажите ошибку.

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