0

それで、私は周りを見回してSOもチェックしました。これに似た私の質問: CakePHP 認証コンポーネントがパスワードをハッシュしないのはなぜですか? 私がそれを機能させることができないことを除いて。

パスワードは登録時にハッシュ化されません。

私のユーザーコントローラーで:

public function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->allow('register', 'logout'); 
    $this->Auth->fields = array('username' => 'email', 'password' => 'password');
}

意見:

<?php echo $this->Form->create('User'); ?>
    <fieldset>

        <?php
        echo $this->Form->input('email');
        echo $this->Form->input('password');
        ?>
    </fieldset>
<?php echo $this->Form->end(__('Submit'));?>

そして、フィールド用のバリデーターがいくつかありemailます。問題は、パスワードがプレーンテキストとして保存されていることです。行がこれを処理する必要があると思いましたAuth->fieldsが、そうではありません。私は CakePHPが と の両方にデータが入力されている場合usernameにのみハッシュすることを知っていますが、明らかに再マッピングしたので、正しくハッシュされているはずですか?password$data

4

1 に答える 1

0

CakePHP 2.x を使用している場合、Auth はパスワードを自動的にハッシュしません。

http://book.cakephp.org/2.0/en/core-libraries/components/authentication.htmlのドキュメントから

AuthComponent は、検出できるすべてのパスワードを自動的にハッシュしなくなりました。これは、検証などの多くの一般的なタスクが困難になったため、削除されました。平文のパスワードは絶対に保存しないでください。また、ユーザー レコードを保存する前に、常にパスワードをハッシュする必要があります。静的 AuthComponent::password() を使用して、パスワードを保存する前にハッシュすることができます。これにより、アプリケーションに構成されたハッシュ戦略が使用されます。

于 2012-04-08T03:20:56.053 に答える