2013-11-01 2 views
1

Я разрабатываю приложение с использованием cakephp 2.3.9. У пользователя есть таблица для сохранения учетных данных пользователя. Как использовать другую таблицу field в таблице User, отличную от password, для сохранения пароля.cakephp настроить поле пароля

ответ

2

Вы можете попробовать это:

public $components = array(
    'Auth' => array(
     'loginAction' => array(
      ...... 
     ), 
     'authError' => '...', 
     'authenticate' => array(
      'Form' => array(
       'fields' => 
        array(
         'password' => 'YOUR_CUSTOM_FIELD' // set custom field 
                 // as password field 
        ) 
      ) 
     ) 
    ) 
); 

в AppController.php.

И в вашей форме type="password" в это поле. например

$this->Form->input('YOUR_CUSTOM_FIELD', array('type' => 'password')); 

Реферирование comment, чтобы зашифровать поле пароля вам нужно сделать ручной подход в контроллере или модели. например в контроллере вы можете сделать так:

$this->request->data['User']['YOUR_CUSTOM_FIELD'] = AuthComponent::password($this->request->data['User']['YOUR_CUSTOM_FIELD']); 

Также вы можете сделать модель beforeSave() функцию также надлежащей проверки в случае add/edit действия.


Ref:

  1. CakePHP Auth Password Hash
  2. For detail about CakePHP Auth
+0

Большое вам спасибо за ваш немедленный ответ .Я попробовал это, и это почти работает, но еще один проблема, с которой я сталкиваюсь, - я не хочу шифровать это настраиваемое поле пароля. так как я могу справиться с этим. У вас есть идеи? – Arun

+0

@ user2575428, пожалуйста, проверьте ответ на обновление – thecodeparadox

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