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 {
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top