2010-02-08 7 views
1

J'utilise Kohana 2.3.4 et je n'arrive pas à faire fonctionner le module auth.Kohana Auth Module ne pas hacher le mot de passe

Je suis juste d'ajouter un utilisateur comme ceci:

$user = ORM::factory('user'); 
$user->username = 'admin'; 
$this->auth = Auth::instance(); 
$user->email = '[email protected]'; 
$user->password = 'secret'; 

$user->add(ORM::factory('role', 'login')); 
$user->save(); 

Le problème est que quand je regarde dans la table des utilisateurs, le mot de passe est en clair. Il semble que le auth_user_model ne soit pas appelé.

Mon modèle d'utilisateur provient de la documentation. c'est-à-dire

// 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 examinant de plus près, le fichier Auth_User_Model n'est pas appelé. Je l'ai corrompu et n'ai reçu aucune plainte.

Je changé

class User_Model extends Auth_User_Model { 

Et maintenant il est hachant les mots de passe. Est-ce la bonne façon de l'utiliser? Je suis surpris que je ne vois pas plus de commentaires à ce sujet? Pour

class User_Model extends ORM { 

Répondre

1

Oui, c'est la bonne façon d'utiliser votre modèle utilisateur avec le pilote ORM Auth. Vous pouvez également surcharger __set() dans votre propre modèle et le faire comme le auth_user_model.

Questions connexes