Модуль аутентификации Kohana не хеширует пароль - PullRequest
1 голос
/ 09 февраля 2010

Я использую Kohana 2.3.4 и не могу заставить работать модуль auth.

Я просто добавляю такого пользователя:

$user = ORM::factory('user');
$user->username = 'admin';
$this->auth = Auth::instance();   
$user->email    = 'admin@example.com';
$user->password = 'secret';

$user->add(ORM::factory('role', 'login'));
$user->save();

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

Моя пользовательская модель взята из документации. т.е. * +1008 *

// and, in models/user.php
class User_Model extends ORM {
    protected $has_and_belongs_to_many = array('roles');

    public function unique_key($id = NULL)
    {
        if ( ! empty($id) AND is_string($id) AND ! ctype_digit($id) )
        {
            return 'username';
        }

        return parent::unique_key($id);
    }

}

При ближайшем рассмотрении файл Auth_User_Model не вызывается. Я испортил его и не получил никаких жалоб.

Итак, я изменился

class User_Model extends Auth_User_Model {

А теперь он хэширует пароли. Это правильный способ его использования? Я удивлен, что не вижу больше комментариев по этому поводу? К

class User_Model extends ORM {

1 Ответ

1 голос
/ 09 февраля 2010

Да, это правильный способ использования вашей пользовательской модели с драйвером ORM Auth. Вы также можете перегрузить __set () в вашей собственной модели и сделать это как auth_user_model.

...