我正在使用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();
问题是,当我查看users表时,密码是明确的。 似乎没有调用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 {
答案 0 :(得分:1)
是的,这是将您的用户模型与ORM Auth驱动程序一起使用的正确方法。您也可以在自己的模型中重载__set(),并像auth_user_model一样。