1

我正在使用 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 没有被调用。

我的用户模型来自文档。IE

// 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 {
4

1 回答 1

1

是的,这是将用户模型与 ORM Auth 驱动程序一起使用的正确方法。你也可以在你自己的模型中重载 __set() 并像 auth_user_model 那样做。

于 2010-02-09T19:38:03.217 回答