Tu as bien crypté le mot de passe de tes utilisateurs ?
Salut !
J'ai un soucis avec la partie authentif. J'arrive pas à me connecter pourtant ma requete est bien renseignée.
mon controller users : ```
public function login(){
public function beforeFilter(Event $event){
parent::beforeFilter($event);
$this->Auth->allow(['add','logout']);
}
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
//return $this->redirect(['controller' => 'Pages','action' => 'display']);
}
$this->Flash->error(__("Pseudo ou mot de passe incorrecte"));
}
}
public function add(){
$user = $this->Users->newEntity();
if($this->request->is('post')){
$user = $this->Users->patchEntity($user,$this->request->data);
$user->creation = date("m.d.y");
//hashage du mot de passe
$hasher = new DefaultPasswordHasher();
$user->password = $hasher->hash($this->request->data('password'));
if ($this->Users->save($user)) {
$this->Flash->success(__('Profil enregistre !'));
return $this->redirect(['action'=>'index']);
}
$this->Flash->error(__('Impossible d enregistrer le profil'));
}
$this->set('user',$user);
}
7 réponses
oui mon mot de passe est bien crypte je le vois bien en bdd.
Dans ma fonction add juste avant l'enregistrement de luser je crypt le mot de passe```
//hashage du mot de passe
$hasher = new DefaultPasswordHasher();
$user->password = $hasher->hash($this->request->data('password'));
Peux tu nous montrer dans ton AppController le chargement du component Auth ?
Quel sont les noms des champs en bdd du username et du password ?
Pour que l'authentification passe il faut que :
- tu aies le composant auth qui soit chargé
- Que tes champs en base de données soient appelés username et password (à moins que tu le modifies dans l'appel à Auth)
- Que tes mots de passe soient cryptés (on le fait souvent dans le modèle au niveau de _setPassword et pas dans le controller directement)
oui je l'ai bien fait comme dans le tuto. MEs champs nommé coresspodnent à ceux de la bdd. c'est à dire username et password.
Voici un bout de mon code de mon AppController.php :
C'est moi ou tu as mis le code de la fonction beforeFilter dans la fonction login ?
Post ton code sur http://codeshare.io/ ou https://gist.github.com pour être sur, car le parser de Graf a un bug.
pardon javais mal copie la fonction netais pas dans la fonction login ^^