CakePHP: компонент Auth не входит в систему

Я изучаю прямо сейчас CakePHP, и я следил за каждым направлением, которое они мне дали, и я получил замечательные результаты, но когда дело доходит до компонента Auth (и очень простая аутентификация, которую они обучают на сайте), я просто не могу управлять сделать это.

Метод $ this-> Auth-> login () продолжает возвращать false и не позволяет мне войти в систему.

Я не использую ничего больше, чем показывает урок, я даже не могу хэшировать пароли (успокойся, я буду, но мне нужно получить базовые данные до!).

Вот мой код:

Модель

App::uses('AppModel', 'Model'); class User extends AppModel { public $validate = array( 'username' => array( 'notEmpty' => array( 'rule' => array('notEmpty'), 'required' => true ), ), 'password' => array( 'notEmpty' => array( 'rule' => array('notEmpty'), 'required' => true ), ), ); 

AppController

 App::uses('Controller', 'Controller'); class AppController extends Controller { public $components = array( 'Session', 'Auth' => array( 'loginRedirect' => array('controller' => 'pages', 'action' => 'display', 'home'), 'logoutRedirect' => array('controller' => 'Users', 'action' => 'index') ) ); } 

Контроллер пользователей

 App::uses('AppController', 'Controller'); class UsersController extends AppController { public function login() { if($this->request->is('post')) { if(!$this->Auth->login()) { $this->Session->setFlash('Invalid Username or Password'); } else { $this->redirect($this->Auth->redirectUrl()); } } } public function logout() { $this->redirect($this->Auth->logout()); } из App::uses('AppController', 'Controller'); class UsersController extends AppController { public function login() { if($this->request->is('post')) { if(!$this->Auth->login()) { $this->Session->setFlash('Invalid Username or Password'); } else { $this->redirect($this->Auth->redirectUrl()); } } } public function logout() { $this->redirect($this->Auth->logout()); } 

Просмотр (Пользователи / login.ctp)

 <div class="login-box"> <?php echo $this->Session->flash('auth'); ?> <?php echo $this->Form->create(); echo $this->Form->input('username'); echo $this->Form->input('password'); echo $this->Form->end('login'); ?> </div> 

Solutions Collecting From Web of "CakePHP: компонент Auth не входит в систему"

Перед сохранением в базе данных вам нужно будет хэш-пароль. При аутентификации с использованием AuthComponent :: login () пароль, введенный в вашу регистрационную форму, сначала хэшируется, а затем проверяется с записью в базе данных. Поскольку ваша запись в базе данных не хеширована, проверка возвращает false.

Хешируйте пароль в User :: beforeSave (), как указано здесь в книге .