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"));
}
}
J4ai du mal à vori pourquoi ca ne passe pas
JE me dis que ca peut etre du coté de l'ajout d'un user car je hache d'une maniere etrange mais ca passe quand meme normalement !
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);
}
Au niveau de mon champs password en bdd il est de type varchar(255) . Help me please !
Bonne soirée =)
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.
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 :
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 :
public function initialize()
{
parent::initialize();
$this->loadComponent('RequestHandler');
$this->loadComponent('Flash');
$this->loadComponent('Auth',[
'authorize' => ['Controller'],
'loginRedirect' => [
'controller' => 'Depenses',
'action' => 'index'
],
'logoutRedirect' => [
'controller' => 'Users',
'action' => 'login'
]]
);
}