Хеширование пароля не работает должным образом - PullRequest
0 голосов
/ 10 декабря 2011

Я пытаюсь заставить логин работать ... но когда я регистрировал (используя add) функцию, у меня был md5, затем я изменил его на $ this-> Auth-> password, и затем я попытался без эта строка ... ну, в первый раз она хорошо регистрируется ... но потом по какой-то причине она снова меняет хэш при входе в систему, она никогда не совпадает с базой данных .. я не знаю, как это исправить .. вот мой код

<?php
class UsersController extends AppController {

    var $uses = array("User");
    var $components = array('Auth', 'Session');


    function index()
    {
        $this->set('users', $this->User->find('all'));
         $this->layout = 'master_layout';
    }

    function beforeFilter() {
       $this->Auth->allow('add');
      } 

      function add() { 

          if (!empty($this->data)) {
             //pass is hashed already
             //->data['User']['password'] = $this->Auth->password($this->data['User']['password']);
             if ($this->User->save($this->data)) {
                $this->Session->setFlash('Your were registered!.');
                               $this->redirect(array('action' => 'index'));
             }
          }

         $this->layout = 'master_layout';
      }

    //IF THE DATABASE IS SET UP CORRECTLY CAKE AUTHENTICATES AUTOMATICALLY NO
    //LOGIC IS NEEDED FOR LOGIN http://book.cakephp.org/view/1250/Authentication
    function login() {
        $this->layout = 'master_layout';
    }

    function logout() {

    $this->redirect($this->Auth->logout());

    }

}
?>

VIEW

<?php
echo $this->Session->flash('auth');
echo $this->Form->create('User');
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->end('Login');
?>

1 Ответ

1 голос
/ 10 декабря 2011

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

см http://www.dereuromark.de/2011/08/25/working-with-passwords-in-cakephp/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...