[CakePHP]Security:hashをAuth->passwordの様に使う際の注意点

[CakePHP1.2.3]

管理画面などでpasswordを保存する場合、hash化する際には、Security:hashを使います。

Auth->passwordでもいいのですが、Authコンポーネントをロードしていないコントローラで新しく Authコンポーネントを読み込むと色々エラーが起こり易くなるので、 普通はSecurity:hashを使います。

それで、普通は以下のようにやれば良いのかと思うのですが、

[php]$this->data[‘Model’][‘password’] = Security:hash($this->data[‘Model’][‘password’])[/php]

これだとAuth->passwordと違うハッシュで保存されてしまいまい、ログイン時にマッチングしなくなってしまいます。

どうすればいいかというと、Auth::passwordのコードを覗いてみたら答えが書いてありました。

[php]$this->data[‘Model’][‘password’] = Security:hash($this->data[‘Model’][‘password’], null, true)[/php]

いや、null, trueなくても同じようにしてくれよ。。って感じです。 もしかするとこのcakephpのバージョンだけの現象かもしれません。

ちなみに、2.xでは普通にAuthComponent::password()のようにStaticに呼べます。

この記事は以下の環境に基づいて書いております。

cakephp1.2.3

php5.2.17

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.