Модуль аутентификации Kohana не хэширует пароль

StackOverflow https://stackoverflow.com/questions/2224893

  •  19-09-2019
  •  | 
  •  

Вопрос

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

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

$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 не вызывается.

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

// 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 {
Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top