CakePHP3でパスワードを暗号化してから保存する
の編集
https://yassu.jp/pukiwiki/index.php?CakePHP3%A4%C7%A5%D1%A5%B9%A5%EF%A1%BC%A5%C9%A4%F2%B0%C5%B9%E6%B2%BD%A4%B7%A4%C6%A4%AB%A4%E9%CA%DD%C2%B8%A4%B9%A4%EB
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
[[CakePHP3めも]] DefaultPasswordHasher を use して _setPassword を記述します。 patchEntity した段階で暗号化されるようです。 src\Model\Entity\User.php <?php namespace App\Model\Entity; use Cake\Auth\DefaultPasswordHasher; use Cake\ORM\Entity; class User extends Entity { protected $_accessible = [ '*' => true, 'id' => false ]; protected $_hidden = [ 'password' ]; protected function _setPassword($password) { return (new DefaultPasswordHasher)->hash($password); } } *初期ユーザーのパスワード生成 [#u49c2975] データベースを作成する際に初期ユーザーを登録しておきたいですよね。~ パスワードを暗号化しておく前提であれば app.php に書いてあるSALTを元に暗号化しておく必要があります。 AppController.phpを以下のように変えてやれば暗号化したパスワードを知ることができます。 <?php namespace App\Controller; use Cake\Controller\Controller; use Cake\Event\Event; use Cake\Auth\DefaultPasswordHasher; class AppController extends Controller { public function initialize() { parent::initialize(); $this->loadComponent('RequestHandler'); $this->loadComponent('Flash'); $objHasher = new DefaultPasswordHasher; echo $objHasher->hash('password'); }
タイムスタンプを変更しない
[[CakePHP3めも]] DefaultPasswordHasher を use して _setPassword を記述します。 patchEntity した段階で暗号化されるようです。 src\Model\Entity\User.php <?php namespace App\Model\Entity; use Cake\Auth\DefaultPasswordHasher; use Cake\ORM\Entity; class User extends Entity { protected $_accessible = [ '*' => true, 'id' => false ]; protected $_hidden = [ 'password' ]; protected function _setPassword($password) { return (new DefaultPasswordHasher)->hash($password); } } *初期ユーザーのパスワード生成 [#u49c2975] データベースを作成する際に初期ユーザーを登録しておきたいですよね。~ パスワードを暗号化しておく前提であれば app.php に書いてあるSALTを元に暗号化しておく必要があります。 AppController.phpを以下のように変えてやれば暗号化したパスワードを知ることができます。 <?php namespace App\Controller; use Cake\Controller\Controller; use Cake\Event\Event; use Cake\Auth\DefaultPasswordHasher; class AppController extends Controller { public function initialize() { parent::initialize(); $this->loadComponent('RequestHandler'); $this->loadComponent('Flash'); $objHasher = new DefaultPasswordHasher; echo $objHasher->hash('password'); }
テキスト整形のルールを表示する