2013-11-01 33 views
1

我正在开发一个使用cakephp 2.3.9的应用程序。它有一个用户表来保存用户的凭证。我如何在表中使用除password以外的其他field字段来保存密码。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']); 

您也可以在add/edit诉讼案做模型beforeSave()功能也通过适当的检查。


编号:

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

非常感谢你为你的立即答复。我尝试过了,它几乎工作,但多了一个我正面临的问题是我不想加密该自定义密码字段。所以我如何处理它..你有什么想法吗? – Arun

+0

@ user2575428请检查更新答案 – thecodeparadox