2014-01-08 2 views
0

in cakePHP 2.4> - это новый процесс аутентификации пользователей.CakePHP 2.4 как проверить пользователя? (No PASSWORD)

В таблице и модели db у меня есть столбцы с паролями, называемые «passwd», ввод формы называется тем же, что и столбцом db.

Таким образом, в модели пользователя у меня есть:

if (isset($this->data[$this->alias]['passwd'])) { 
    $passwordHasher = new SimplePasswordHasher(); 
    $this->data[$this->alias]['passwd'] = $passwordHasher->hash($this->data[$this->alias]['passwd']); 
       } 

В пользователя контроллера я получил

public function beforeFilter() { 
    parent::beforeFilter(); 
    // Allow users to register and logout. 
    $this->Auth->allow('register','verify','login'); 
    $this->Auth->authenticate = array(
     'Form' => array(
      'fields' => array('username' => 'email', 'password' => 'passwd'), 
     ), 
    ); 
} 


public function login() { 
    // accept only ajax post request 
    if ($this->request->is('ajax') && $this->request->is('post')) { 

     $tmpUser['User']['username'] = $this->request->data['User']['email']; 
     $tmpUser['User']['password'] = $this->request->data['User']['passwd']; 

     // try to login user 
     if ($this->Auth->login ($tmpUser)) { 
      echo('Login Successfull'); 
     } else { 
      echo('Login Incorrect'); 
     } 
    } 
} 

Но, к сожалению я до сих пор не может успешно войти в SQL дамп не доступен для добавления комментария. пароль (только имя пользователя).

Я попытался найти полезную информацию, но ничего не найдено.

Так я пытался документацию по:

http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html

Но все-таки не повезло.

Есть ли кто-нибудь с той же проблемой или кто-нибудь, у кого есть решение для этого?

Спасибо за любую помощь.

+1

'$ this-> Auth-> логин ($ tmpUser)' => вы номер 14433, который не понимает, разницу между() и ($ Var). Вы не пытаетесь войти в систему, вы всегда регистрируете человека. См. Документацию. Существует даже предупреждение об этой разнице. – mark

+0

Вы думаете это? http://book.cakephp.org/2.0/ru/core-libraries/components/authentication.html#identifying-users-and-logging-them-in – redrom

+0

Да, красная коробка. – mark

ответ

0

Почему переназначение? Это не будет работать

if ($this->request->is('ajax') && $this->request->is('post')) { 

    // expects this to be posted: 
    // $this->request->data['User']['email']; 
    // $this->request->data['User']['passwd']; 

    // try to login user 
    if ($this->Auth->login()) {} 
+0

Нет, это не работает для меня, оно просто проверяет электронную почту пользователя вместо электронной почты и пароля пользователя. – redrom

+0

Вы подтвердили, что ожидаемые данные публикуются в ожидаемом формате? Использование debug() или ведение журнала или что-то еще? – mark

+0

Да, это AJAX POST-вызов (jQuery serialized form data) для входа в систему на контроллере User. – redrom

Смежные вопросы