Kohana Auth Módulo não hash da senha
-
19-09-2019 - |
Pergunta
Eu estou usando Kohana 2.3.4 e não pode obter o módulo de autenticação de trabalho.
Eu estou apenas adicionando um usuário assim:
$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();
O problema é que quando eu olhar para a tabela de usuários, a senha é em claro. Parece que a auth_user_model não está sendo chamado.
O meu modelo de usuário é a partir da documentação. i.
// 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);
}
}
Na inspeção mais o Auth_User_Model arquivo não está sendo chamado. I corrompido-lo e não tenho queixas.
Então eu mudei
class User_Model extends Auth_User_Model {
E agora está hash das senhas. É esta a maneira correta de usá-lo? Eu estou surpreso que eu não estou vendo mais comentários sobre isso? Para
class User_Model extends ORM {
Solução
Sim, essa é a maneira correta de usar o seu modelo de usuário com o motorista ORM Auth. Você também pode sobrecarregar __set () no seu próprio modelo e fazê-lo como o auth_user_model.