1

Cakephp 2.3.9 を使用してアプリケーションを開発しています。ユーザー資格情報を保存するためのユーザー テーブルを取得しました。パスワードを保存するために、フィールド以外の別fieldのテーブルを使用するにはどうすればよいですか。Userpassword

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 に答える