Приветствую всех читателей! В этой части мы рассмотрим создание не сложной системы авторизации пользователей нашего баг трекера. Для начала сформулируем задачу. Как вы, наверное, помните, оставить сообщение о найденном баге или комментарий к нему может кто угодно. Но удалять записи и комментарии могут только администраторы. На практике это будет выглядеть следующим образом. Администратор при входе вводит имя и пароль.
Баг трекер их проверяет и, если они совпадают с записанными в базе данных, добавляет к каждому багу и комментарию ссылку «Удалить». Кроме того, при выполнении каждой операции удаления необходимо проверить является ли текущий пользователь администратором. Для справки. Эти проверки называются аутентификация и авторизация.
Авторизация (англ. authorization) — процесс предоставления определенному лицу прав на выполнение некоторых действий. Аутентификация (англ. Authentication) — процедура проверки соответствия некоего лица и его учетной записи в компьютерной системе.
(цитаты из википедии) Таким образом, при входе в систему нам нужно аутентифицировать администратора, а при выполнении им операции – авторизовать. Задача, в общем-то, стандартная и для её решения написано множество библиотек разной степени сложности. Прежде чем переходить к выбору библиотеки, перечислим функции, которые нужны для разделения прав в нашем баг трекере. 1) Создание учетной записи в базе данных. 2) Проверка имени и пароля при входе в систему (аутентификация). 3) Проверка прав пользователя на выполнение операции (авторизация). Требования минимальные и не сложно было бы реализовать такую систему самостоятельно. Но зачем «изобретать велосипед» если есть куча готовых решений? Для этого проекта я решил использовать библиотеку под названием Redux. Каких-то особых причин, по которым я на ней остановился, нет. Просто видел несколько хороших отзывов, и захотелось поэкспериментировать. На данный момент есть две версии библиотеки: 1.4а (стабильная) и 2 (бета). Вторая по своим возможностям мне понравилась больше, поэтому и использовал я именно её. Но бета есть бета, и сразу обнаружилось несколько недостатков. Самое главное, в архиве 2-ой версии нет документации, есть только демонстрационный пример. Полноценная справка написана для версии 1.4, причем очень хорошая, сделана в том же стиле, что и тьюториал CodeIgniter. Используя пример и справку из версии 1.4, разобраться не сложно. Теперь рассмотрим, что нужно сделать для подключения этой библиотеки к нашему приложению. 1) Скачать и распаковать архив. 2) Скопировать 3 файла: \application\config\redux_auth. php \application\models\redux_auth_model. php \application\libraries\redux_auth. php 3) Импортировать файл database. sql в базу данных. При этом будут созданы несколько таблиц. 4) Настроить библиотеку. Для этого, открываем файл \application\config\redux_auth. php и изменяем соответствующие значения. Здесь я только отключил активацию по email.