Pregunta

Estoy usando Kohana 2.3.4 y no puedo obtener el módulo de autenticación para trabajar.

Sólo estoy añadiendo un usuario de esta manera:

$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();

El problema es que cuando miro en la tabla de usuarios, la clave está en la clara. Parece que el auth_user_model no está siendo llamado.

Mi modelo de usuario es de la documentación. es decir.

// 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);
    }

}

En una inspección más cercana de la Auth_User_Model archivo no está siendo llamado. Me corrompido y no tiene quejas.

Así que cambié

class User_Model extends Auth_User_Model {

Y ahora se hash de las contraseñas. ¿Es esta la forma correcta de usarlo? Me sorprende que no estoy viendo más comentarios acerca de esto? Para

class User_Model extends ORM {
¿Fue útil?

Solución

Sí, esa es la forma correcta de utilizar el modelo de usuario con el conductor ORM de autenticación. También podría sobrecargar __set () en su propio modelo y hacerlo como el auth_user_model.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top