Cakephp PHP WEB開発

[Cakephp2→4]コントローラ編: AuthComponent::passwordの代替

※本サイトはPR表記を含みます。

Cakephp2から4へのアップデートはたくさんのものが非推奨、または廃止になっています。

Cakephp4では、とうとうAuthComponent自体も非推奨になり、5では淘汰される運命にある模様(でも、移行の際には同じ形の方が事故が少なくなるので一旦AuthComponentのまま実装するのがいいのかも)

今回はAuthComponent::password()の代替として、ユーザーパスワードの生成などにおいてはDefaultPasswordHasher::hash()を利用しましょうというお話です。

Cake2: AuthComponent::passwordはCake4では削除

Cake3の時点でAuthComponent::passwordは非推奨になっています。

https://api.cakephp.org/2.10/class-AuthComponent.html#_password

Security::hash()を利用するようにということだけど、ユーザーのパスワード生成の際は、bcrypt方式のDefaultPasswordHasherを利用すべきということ

https://book.cakephp.org/4/en/core-libraries/security.html#hashing-data

 

Cake4: DefaultPasswordHaherを使う

<?php
// 略
use Cake\Auth\DefaultPasswordHasher;
// 略

class HogesController extends AppController
{
    public function fuga()
    {
        return (new DefaultPasswordHasher)->hash({任意のパスワード値});
    }
}

https://book.cakephp.org/4/ja/controllers/components/authentication.html#hashing-passwords

-Cakephp, PHP, WEB開発
-