我使用的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验证驱动程序的正确方法。你也可以在你自己的模型重载__set()和不喜欢它的auth_user_model。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top