Bonjour,
ca fait maintenant plusieurs jours que je suis bloqué sur ce probleme. La fonction login() me retourne constamment false.
Je suis sur cakephp 2.5.1.
Voici le code, je précise que je suis débutant ^^
AppControler
class AppController extends Controller {
public $components = array('Session', 'Cookie',
'Auth' => array(
'authenticate' => array('Form')
));
public function beforeFilter() {
parent::beforeFilter();
}
}
UsersController
public function login() {
if(!empty ($this->request->data)){
if($this->Auth->login()){
die('logged');
}else{
}
debug($this->request->data);
debug($this->Auth->login());
}
}
en debug j'ai donc bien mon
array(
'User' => array(
'username ' => 'monidentifiant',
'password ' => 'monpassword'
)
)
et le debug de Auth à False
la vue:
login.ctp
<?= $this->Form->create('User') ;?>
<?= $this->Form->input('username ', array('label' => 'username', 'placeholder' => "Identifiant")); ?>
<?= $this->Form->input('password ', array('label' => 'password', 'placeholder' => "Mot de passe", 'type' => 'password')); ?>
<?= $this->Form->end('se connecter') ;?> .
Concernant mon model User,
je n'ai rien mis de particulier à part un $validate etc (ce qui n'a rien à voir avec l'authentification)
Merci ^^
J'ai enfin trouvé la réponse, une faute toute bête... vraiment toute bête je m'en veux, et enfin j'ai trouvé.
Le probleme se trouvait dans mon forme... j'ai marqué "username " et "password " et non "username" et "password" , du coup cakephp prenais l'espace en compte....
pas fière de cette bêtise, mais au moins c'est résolu ! :D
bonjour,
oui ils sont cryptés,
j'ai rajouté hier ce bout de code dans mon AppController
public function beforeSave($options = array()) {
if (!empty($this->data'User']'password'])) {
$passwordHasher = new SimplePasswordHasher(array('hashType' => 'sha256'));
$this->data'User']'password'] = $passwordHasher->hash(
$this->data'User']'password']
);
}
return true;
}
le nombre de caractere au cryptage est plus long dans le bdd désormais. Je précise que je suis en VARCHAR 255 pour le password.