前提・実現したいこと
CakePHP3でパスワードのハッシュ化をしたいのですが、サンプルをまねてみてもうまく動作しません。
発生している問題・エラーメッセージ
サンプルのファンクションを追加した後にユーザを追加し、localhost:8765/userで情報を確認しても、ハッシュ化されていない。
Mysqlで確認しても同様にハッシュ化されていない値となっている。
該当のソースコード
CakePHP
1<?php 2namespace App\Model\Entity; 3 4use Cake\Auth\DefaultPasswordHasher; 5use Cake\ORM\Entity; 6 7/** 8 * User Entity 9 * 10 * @property int $USER_USERID 11 * @property string $USER_ACCOUNTID 12 * @property string $USER_ACCOUNTNAME 13 * @property string $USER_PASSWORD 14 */ 15class User extends Entity 16{ 17 protected function _setPassword($password) 18 { 19 if (strlen($password) > 0) { 20 return (new DefaultPasswordHasher)->hash($password); 21 } 22 } 23 24 /** 25 * Fields that can be mass assigned using newEntity() or patchEntity(). 26 * 27 * Note that when '*' is set to true, this allows all unspecified fields to 28 * be mass assigned. For security purposes, it is advised to set '*' to false 29 * (or remove it), and explicitly make individual fields accessible as needed. 30 * 31 * @var array 32 */ 33 protected $_accessible = [ 34 'USER_ACCOUNTID' => true, 35 'USER_ACCOUNTNAME' => true, 36 'USER_PASSWORD' => true 37 ]; 38} 39
サンプルコードは公式ガイドからお借りしました。
回答1件
あなたの回答
tips
プレビュー