What’s the problem with this code? The Controller and Identify only return false! My database column is senha (password) and email. And I can not sign in. I am using hash, password with 255 characters and all right. But it’s not working!
ContaController.php
public function initialize() {
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'fields' => ['email' => 'email', 'senha' => 'senha'],
'userModel' => 'Conta',
'finder' => 'auth',
]
],
'authorize' => ['Controller'],
'loginAction' => [
'controller' => 'Conta',
'action' => 'index',
],
'loginRedirect' => [
'controller' => 'Conta',
'action' => 'minha-agenda'
],
'logoutRedirect' => [
'controller' => 'Conta',
'action' => 'index',
],
'storage' => 'Memory'
]);
$this->Auth->allow(['index']);
}
public function index() {
if ($this->request->is('ajax') || $this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
// return $this->redirect($this->Auth->redirectUrl());
echo 'success';
} else {
var_dump($user);
echo 'incorrect';
}
}
}
ContaTable.php
public function initialize(array $config) {
parent::initialize($config);
$this->setTable('alunos');
$this->setDisplayField('id');
$this->setPrimaryKey('id');
$this->addBehavior('Timestamp');
$this->belongsToMany('Alunos', [
'foreignKey' => 'interesses_id',
'targetForeignKey' => 'alunos_id',
'joinTable' => 'alunos_interesses'
]);
}
public function validationDefault(Validator $validator) {
$validator
->notEmpty('email', 'A username is required')
->notEmpty('senha', 'A password is required');
return $validator;
}
public function findAuth(\Cake\ORM\Query $query, array $options) {
$query
->select(['id', 'email', 'senha'])
->where(['Conta.email' => $options['email']])
->andWhere(['Conta.senha' => $options['senha']]);
return $query;
}
I need help solving this problem. The columns in the database are different, so I do not intend to use it as default. More ahead it will become ajax but for now it is so because I could not solve!