記事

CakePHP 2.xのAuthコンポーネントは、パスワードを自動的に暗号化しないらしい。

  • このエントリーをはてなブックマークに追加

久しぶりにCakePHPいじくっててハマったので、メモ。

CakePHP 1.3までは、Authコンポーネントを使っている場合、自動的にパスワードを暗号化してくれていたのですが、タイトルの通り、CakePHP 2.0以降のAuthコンポーネントでは暗号化しないようになっているようです。

Authコンポーネントを使って、ユーザー登録の処理を書いていたのですが、パスワードが暗号化されないのでググってみるものの、「AuthComponentのパスワード暗号化を無効にする方法」のような記事はたくさん見つかるのですが、肝心の2.0での暗号化に関する記事がなかなか出てこないので、半日以上ハマっておりました。。。

よくよくCakePHPのドキュメント(英語)を読んでみると、ハッキリと

AuthComponent no longer automatically hashes every password it can find.

と書かれているではありませんか!

しかも、ちょっと前に自分が書いたソースを見てみると、モデルにちゃんと

	public function beforeSave($options = array()) {
		$this->data['User']['password'] = AuthComponent::password($this->data['User']['password']);
		return true;
	}

このように、beforeSave()でパスワードを暗号化している!
なんで知ってんねん!昔のオレ!とか思いつつ、とりあえず問題解決。

ハマったらちゃんと書いておかないと駄目ですね。反省。

  • このエントリーをはてなブックマークに追加
2012年4月
« 3月   5月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

フォトライブラリー

コメントを残す

%d人のブロガーが「いいね」をつけました。