[[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
 <?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');
     }

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS