Cakephp2 プロジェクトを Cakephp3 に移行したいと考えています。ユーザーの情報を保持する必要があります。パスワードを同じ方法で生成するにはどうすればよいですか? Cakephp2 でパスワードを生成する方法を次に示します。
App::uses('AuthComponent', 'Controller/Component');
....
public function beforeSave($options = array()) {
$this->data['User']['password'] = AuthComponent::password(
$this->data['User']['password']
);
return true;
}
これは、cakephp3 ドキュメントがパスワードを生成する方法です。
namespace App\Model\Entity;
use Cake\Auth\DefaultPasswordHasher;
use Cake\ORM\Entity;
/**
* User Entity.
*/
class User extends Entity
{
/**
* Fields that can be mass assigned using newEntity() or patchEntity().
*
* @var array
*/
protected $_accessible = [
'email' => true,
'password' => true,
'bookmarks' => true,
];
protected function _setPassword($value)
{
$hasher = new DefaultPasswordHasher();
return $hasher->hash($value);
}
}
それらは同じ平文ではなく、同じ暗号文を生成します。そのため、cakephp2 のユーザー情報を保持できません。成功する移行プロジェクトを設定する方法を教えていただけますか?