Я пишу веб-приложение с использованием PHP. Я хочу использовать шаблон MVC для этого и решил пойти с CodeIgniter . Мое приложение будет иметь некоторые страницы, для которых потребуется аутентификация, а некоторые страницы – нет. Я хочу создать это очень универсальным образом, чтобы не было дублирования кода. Может ли кто-нибудь указать на хорошую «конструкцию / класс» для этого?
Напишите пользовательскую библиотеку, которую вы можете автозагрузите в приложении для воспламенения кода на каждом просмотре страницы. Он должен иметь функции, которые:
Затем в классах контроллеров вы можете выполнить вызов функции аутентификации в конструкторе, тогда в зависимости от результата продолжить как обычно или перенаправить их на экран входа в систему с сообщением об отказе доступа.
Сделайте поиск в викторине для воссоздания кода для «проверки подлинности», и есть ряд результатов, которые могут помочь: http://codeigniter.com/wiki/
«Ион Аут» – тощий, хорошо запрограммированный, несколько широко используемый и активно поддерживается.
Если под «некоторыми страницами» вы подразумеваете некоторые контроллеры (шлюз к вашим представлениям), тогда вы можете изучить наследование контроллера. Расширьте контроллер CodeIgniter по умолчанию и проверите проверку подлинности в конструкторе (проверьте сеанс для зарегистрированного флага или что-то еще, а если не войти в систему, перейдите на страницу входа). Затем все контроллеры, требующие аутентификации, должны будут расширить ваш новый родительский контроллер. Вот и все.
Перейдите на форумы CodeIgniter и найдите несколько способов расширения контроллера. Вот один http://codeigniter.com/forums/viewthread/89768/#452890
Возможно, вы можете использовать библиотеку CL_AUTH для CI. Я использовал его, и он работает хорошо. Вы можете найти его здесь http://www.jasonashdown.co.uk/cl_auth_doc/
Недавно я изучал то же самое, и я нашел вилку CodeIgniter под названием Kohana, которая включает в себя хороший модуль аутентификации . Если вы настроены на CI, возможно, адаптировать модуль auth Kohana назад к CI, вы сэкономите время? Если вы только что начали свой проект и PHP5 в порядке, подумайте о переходе; они очень похожи.
Посетите GitHub и найдите Codeigniter Auth или Authentication, или проверьте CodeIgniter Wiki , вы найдете множество библиотек с различными функциями. Изучите их и выберите тот, который вам нужен! Но будьте осторожны, многие из них относятся к CI 2, и вы должны сначала использовать классы с CI 3, иначе они вообще не работают.
Используйте flexi auth модифицированную версию популярной библиотеки Ion Auth . Он более продвинутый и делает всю работу готовой.
flexi auth – бесплатная библиотека аутентификации пользователей с открытым исходным кодом для использования с картой CodeIgniter 2.0+.
Я знаю, что уже слишком поздно, но я надеюсь, что кто-то найдет это полезным. Ура!