CakePHP 3.7.6 LegacyPasswordHasher不起作用

时间:2019-04-16 00:19:47

标签: php cakephp

cakephp的auth组件有问题 我按照本指南创建了legacypasswordhasher https://book.cakephp.org/3.0/en/controllers/components/authentication.html 我像这样在appcontroller中加载类:

$this->loadComponent('Auth', [
        'authenticate' => [
            'Form' => [
                'passwordHasher' => [
                    'className' => 'Legacy',
                ]
            ]
        ]
    ]);

,我已经在src / Auth中创建了legacypasswordhelper类,如下所示:     

namespace App\Auth;

use Cake\Auth\AbstractPasswordHasher;

class LegacyPasswordHasher extends AbstractPasswordHasher
{

public function hash($password)
{
    return sha1($password);
}

public function check($password, $hashedPassword)
{
    return sha1($password) === $hashedPassword;
}
}

?>

但是,如果我以表单登录,则auth组件不会运行legacypassword函数。我在哈希和检查功能中使用调试,但从未显示。 我希望任何人都有解决方案

1 个答案:

答案 0 :(得分:0)

好的,我解决了这个问题。 我不知道cake auth仅在您使用cake的表单功能时才有效。 我已经使用正常表格

<form method="post" action="/users/login">

但您确实必须

<?php echo $this->Form->create(); ?>

使用它使遗留功能正常工作