Usersテーブルにusernameとpasswordを入れて、
チュートリアルにある簡単な認証画面でテストしたのですが、
どうしても認証できません。
データベースはMySQLを使用して、select md5(‘password’) で取得した値を
passwordに入れていました。
デバッグしてみると、auth.phpでSecurity.saltで設定している
ランダムの値が使用されていました・・・。
Security.saltの値プラス、フォームのpasswordの値をmd5に変換していたのです。
対応策は、事前に登録する値はselect md5(‘Security.saltの値password’)
で登録するか、Cakeでaddするか、以下のように修正するかのようです。
Securityコンポーネントでは、saltを使用するかをtrueかfalseで設定できますが、
肝心の呼び出し元であるauthコンポーネントではtrue固定となっていました。
auth.php /** * Hash a password with the application's salt value (as defined with Configure::write('Security.salt'); * * @param string $password Password to hash * @return string Hashed password * @access public * @link http://book.cakephp.org/view/1263/password */ function password($password) { //return Security::hash($password, null, true); return Security::hash($password, null, false); }
これだけで相当はまりました・・・ :x001: