0

我正在尝试制作自己的自定义密码哈希。我已阅读 CakePHP 2.4 文档并按照说明进行操作

http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#creating-custom-password-hasher-classes

这是我在 Controller/Component/Auth 上的 CustomPasswordHasher 类

App::uses('CustomPasswordHasher', 'Controller/Component/Auth');

class CustomPasswordHasher extends AbstractPasswordHasher {

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

    public function check($password, $hashedPassword) {
        return $password === $this->hash($hashedPassword);
    }
}

这些是我在 UsersController 上的组件

 public $components = array(
    'Session',
    'Auth' => array(
        'loginRedirect' => array('controller' => 'posts', 'action' => 'index'),
        'logoutRedirect' => array('controller' => 'pages', 'action' => 'display', 'home'),
        'authenticate' => array(
            'Form' => array(
                'passwordHasher' => array(
                    'className' => 'Custom'
                )
            )
        )
    )
);

当我尝试登录用户时,出现此错误:

错误:找不到类“AbstractPasswordHasher”
文件:C:\Users\Jonathan\Dropbox\Public\WebSites\umbrellaApp\app\Controller\Component\Auth\CustomPasswordHasher.php
行:5

注意:如果要自定义此错误消息,请创建 app\View\Errors\fatal_error.ctp

我抬头看了看我的核心,我可以看到 AbstracrPasswordHasher

谁能帮我?

谢谢

4

1 回答 1

3

看起来文档中有错误,当然应该 load AbstractPasswordHasher,而不是CustomPasswordHasher,这是正在创建的类的名称。

您的App::uses()通话应如下所示:

App::uses('AbstractPasswordHasher', 'Controller/Component/Auth');
于 2013-10-02T15:18:18.613 回答