【问题标题】:Can't find: BlowfishPasswordHasher Cakephp找不到:BlowfishPasswordHasher Cakephp
【发布时间】:2015-03-10 09:43:55
【问题描述】:

我刚刚下载了 CakePHP,并按照教程来学习基础知识。一切都很顺利,直到我开始使用这个身份验证系统。

如果您转到以下网址,然后转到密码哈希块(代码)。

http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html#authentication-login-and-logout

你会看到:

public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
    $passwordHasher = new BlowfishPasswordHasher();
    $this->data[$this->alias]['password'] = $passwordHasher->hash(
        $this->data[$this->alias]['password']
    );
}
return true;
}

问题是当我运行它时,我在那条线上得到了一个致命错误:

致命错误:在第 29 行的 /Users/myUser/Sites/cake/app/Model/User.php 中找不到类“BlowfishPasswordHasher”

这是一行(准确地说):

$passwordHasher = new BlowfishPasswordHasher();

为什么它看不到那个文件?

在我的 PHPStorm IDE 中,当我 alt+单击它时,它会转到位于以下位置的正确文件:

/Users/myUser/Sites/cake/lib/Cake/Controller/Component/Auth/BlowfishPasswordHasher.php

还有其他人对此有疑问吗?

提前致谢

【问题讨论】:

  • 只是一个小评论:我也尝试过:SimplePasswordHasher(),但它给出了同样的错误。 (文件在那里)。
  • 你用的是哪个cakephp version

标签: php cakephp


【解决方案1】:

在您的User Model 中添加以下行

App::uses('BlowfishPasswordHasher', 'Controller/Component/Auth');
class User extends AppModel {
    ....
}

注意:BlowfishPasswordHasher 使用比 SimplePasswordHasher (sha1) 更强的散列算法 (bcrypt) 并提供每个用户的盐。从 CakePHP 3.0 版开始,SimplePasswordHasher 将被删除

【讨论】:

  • 摇滚人,谢谢。奇怪的是教程中没有说明。
  • 如果您仔细观察@BiGGiE0344,您会注意到在您链接的文档中的代码 sn-p 中可以找到这一行。
猜你喜欢
  • 2016-06-28
  • 2018-01-08
  • 2014-05-15
  • 2014-01-20
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多