猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

未分類

CakePHPのauth.phpでパスワードの認証ができない

投稿日:2013年7月17日 更新日:

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:

Gooleアドセンス用336

Gooleアドセンス用336

-未分類
-

執筆者:

関連記事

asp

IIS(ASP.NET)ではネットワークドライブの割り当てを使ってはいけない

以前「タスクタスクスケジュールではネットワークドライブの割り当てを使ってはいけない」 という記事を記載したが、ASP上でも同じことが言えます。 ASPも実行するのがログインしているユーザーとはことなり …

PDO SQLSRVが認識しない

Windows上でPHPを使ってSQLSERVERに接続するためには PDO SQLSERVERというエクステンションを追加するのが一般的だと思います。 がどうしてもうまく認識してくれません。 認識し …

CakePHPでSQLを直接実行する

正直find等を使用するのは面倒です。 SQLを直接実行するには以下のようにします。 $sql=’select count(*) as cnt, referer from acls where con …

Warning (2): Cannot modify header information – headers already sent by (output started at ・・・

echoで少し大きめのhtmlのレスポンスを返そうとすると発生しました。 ヘッダーがすでに送られているとかなんとか・・・ 結論からいいますと、 /etc/php.ini で以下の修正をするとなおりまし …

PHPのダブルクォーテーションとシングルクォーテーション

PHPではどちらでも利用できます。 ダブルクォーテーション => 文字列中の変数を展開する シングルクォーテーション => 文字列中の変数を展開しない という違いがあるようですが、あまり意 …