1

我正在使用 cakephp 2.3.9 开发一个应用程序。它有一个用户表来保存用户凭据。我如何使用不同fieldUser表而不是password字段来保存密码。

4

1 回答 1

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'));

参考注释,加密您需要在控制器或模型中手动处理的密码字段。例如在控制器中你可以这样做:

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

beforeSave()您也可以通过适当的检查来执行模型功能add/edit


参考:

  1. CakePHP 验证密码哈希
  2. 有关 CakePHP Auth 的详细信息
于 2013-11-01T06:55:56.643 回答