Модуль аутентификации Kohana 3, как настроить пользовательскую таблицу и поля - PullRequest
3 голосов
/ 05 ноября 2011

У меня есть комментарий в загрузчике модуля для загрузки аутентификации, но что я не понимаю, так это как сказать модулю аутентификации, какие поля какой таблицы следует использовать для аутентификации? Я также не нашел этого в руководстве пользователя в Kohana 3, поскольку обнаружил, что руководство пользователя для модуля auth отсутствует.

Так скажите, пожалуйста, кто-то уже использует его. И если он использует поля по умолчанию для какой-либо таблицы, то как я могу изменить его?

спасибо за чтение моего вопроса и за ваши попытки ответить на него.

Ответы [ 2 ]

9 голосов
/ 10 ноября 2011

Вот шаги для вас

  • Раскомментируйте модуль Auth в bootstrap.php (вы уже сделали это)
  • в ORM Module, да в ORM Module вы найдете auth-schema-mysql.sql & auth-schema-postgresql.sql. Используйте тот, который вам нужен.
  • настроить файл конфигурации auth.php при необходимости. Ниже приведена конфигурация, которую я использую.

    <?php defined('SYSPATH') or die('No direct access allowed.');
    return array(
        'driver'       => 'ORM',
        'hash_method'  => 'sha256',
        'hash_key'     => "ica_hash_key",
        'lifetime'     => Date::MINUTE * 30,
        'session_type' => 'database',
        'session_key'  => 'auth_user',
    );
    
  • набор Cookie::$salt в bootstrap.php. Добавьте эту строку в ваш bootstrap.php.

    Cookie::$salt = 'YourSecretCookieSalt';
    
  • с настройкой Auth module все готово;)


Поскольку вы настроили модуль auth, очевидно, вы выполнили скрипт sql. Вы получите таблицу users, roles, roles_users & users_tokens, созданную в вашей базе данных.

Теперь вы можете изменить таблицу users, добавив столбец. Поскольку вы используете ORM, Model_User уже существует для вас, что является ORM:)

Так что это все, я верю.

1 голос
/ 08 ноября 2011

Схемы базы данных MySQL и PostGreSQL для драйвера ORM Auth можно найти в модуле ORM.Но убедитесь, что длина поля пароля соответствует правильному алгоритму хеширования.Для sha256 по умолчанию это должно быть 64, для sha512 должно быть 128, для md5 должно быть 32 и для sha1 это должно быть 40 и т. Д.

Я думаю, вы могли бы перегружать __get () и __set ()методы, если вы действительно хотите изменить поля таблицы.Или вы можете создать представление базы данных, но это может вызвать проблемы с запросами на вставку и обновление.Или попробуйте модуль A1 Wouter , который позволяет вам изменять имена столбцов, которые он использует.

...