Я играю с CakePHP и не могу заставить работать логин.Похоже, что $ this-> Auth-> identif () постоянно возвращает false и не позволяет мне войти в систему.
Я прочитал все предыдущие сообщения, касающиеся моей проблемы, однако ни одно не предоставило мне решение,Пользователи, к которым я пытаюсь войти, так как все они были созданы с использованием хеш-пароля для торта, который я проверял, были сохранены в базе данных.Я проверил длину поля пароля в базе данных, которая установлена на varchar (255), я проверил, что поля Auth => authenticate => Form => установлены на правильные значения (поля login.ctp также правильны).Я также попытался изменить $ this-> Form-> control () на $ this-> Form-> input (), как кто-то предложил, но безуспешно.
AppController:
$this->loadComponent('Auth', [
'loginRedirect' => [
'controller' => 'Users',
'action' => 'classes'
],
'logoutRedirect' => [
'controller' => 'Users',
'action' => 'index'
]
]);
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'fields' => [
'username' => 'email',
'password' => 'password'
]
]
],
'loginAction' => [
'controller' => 'Users',
'action' => 'login'
]
]);
функция login () в UsersController:
public function login()
{
if ($this->request->is('post')) {
$user = $this->Auth->identify();
pj($user);
if ($user) {
$this->Auth->setUser($user);
return $this->redirect(['controller' => 'users']);
}
$this->Flash->error(__('Invalid username or password, try again'));
}
}
login.ctp:
<div class="users form">
<?= $this->Form->create() ?>
<fieldset>
<legend><?= __('Please enter your username and password') ?></legend>
<?= $this->Form->input('email') ?>
<?= $this->Form->input('password') ?>
</fieldset>
<?= $this->Form->button(__('Login')); ?>
<?= $this->Form->end() ?>
</div>
РЕДАКТИРОВАТЬ: я забыл добавить, что я могу успешно добавлять пользователей, я просто не могу их войтив.