Библиотеки аутентификации и авторизации Codeigniter, которые работают хорошо вместе - PullRequest
0 голосов
/ 27 января 2012

Мне нужна функциональность для обработки аутентификации и некоторая базовая авторизация на основе ролей (просто заблокируйте несколько страниц для одной роли и разрешите несколько страниц для другой).

Я уже читал этот вопрос: Какая библиотека аутентификации и авторизации лучше всего подходит для CodeIgniter?

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

Ответы [ 2 ]

0 голосов
/ 29 января 2012

Мне нравится ответ с кеглями, поэтому я публикую его здесь (он не публикует):

Я уверен, что это не то, что вы хотели услышать, но я предпочитаю катить мои собственные занятия. Я не боюсь заново изобрести колесо

Я предпочитаю использовать соленый хеш. Что я обычно делаю, это беру их обычный текстовый пароль и добавьте к нему строку, полученную из элемента $ config Я называю $ config ['encryption_salt']. Затем я запускаю недавно построенную строку через функцию ph1 sha1 и сохраните результат в базе данных.

Что касается авторизации, я обычно создаю поиск разрешений таблица в моей БД и назначить пользователям значение access_id в их пользователя запись. Тогда мой сайт можно условно разрешить или запретить деятельность на основе их разрешения_ид

Если Skittle отправит ответ, я его отмечу

0 голосов
/ 27 января 2012

Все библиотеки Auth, о которых я знаю, ограничивают вас в той или иной форме. Обычно хорошей идеей является создание собственной библиотеки аутентификации, разбивайте ее, чтобы не ограничивать себя использованием родного AR кодаignigners.

Для роли / разрешений я обычно просто сохраняю объект json в моем столбце разрешений, скажем, users. Я предпочитаю это, используя более сложную технику

В моем главном контроллере (не ограничивающем) я просто создаю переменную (массив) разрешений и перебираю ее внутри дочерних контроллеров для реализации ограничения.

пример:

столбец sql

`permissions` varchar(200) NOT NULL DEFAULT '["r", "u", "d"]';

главный контроллер

protected $permissions = array();

protected function _get_permissions()
{
   return (array)json_encode($this->user->permissions);
   //get permissions from user (array/object)
}

расширенные дети

if(in_array('r', $this->permissions))
{
   //user can read something
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...