CakePhp 4.x基本身份验证

时间:2020-10-27 16:47:33

标签: cakephp

我一直沿用CakePHP 4.x教程(据我所知),直到“ CMS教程-身份验证”一章为止。

通过“现在,在每个请求上,AuthenticationMiddleware都会进行一半的检查,以检查请求会话以查找经过身份验证的用户。如果我们正在加载/ users / login页面,则还将检查发布的表单数据(如果有)提取凭证。”

当我尝试访问文章或用户时,出现错误:

(!)致命错误:界面 找不到“ Authentication \ AuthenticationServiceProviderInterface” C:\ wamp64 \ www \ cake \ src \ Application.php在第41行

我试图弄清楚为什么会这样,但是我找不到。我试图在互联网上查找相同的问题,没有骰子。甚至没有提到这可能与安全有关(我之前提到了严格的浏览器设置,但这与另一个问题有关)。

我已将代码上传到Github上:https://github.com/plafeber/cakephp-tutorial

非常感谢您的反馈。我的假设是,如果我从教程中创建完整的代码集,那么我当然可以运行CakePHP 4.1.5并遵循相关的Cake 4.x手册,那么它将起作用。但是,我已经发现,与代码中的代码相比,我必须更改有关DefaultPasswordHasher的用法的代码。因此,我可以想象“教程”页面并不完全正确。

这将是有关User.php中DefaultPasswordHasher的使用的正确行;

//the use line
use Cake\Auth\DefaultPasswordHasher as AuthDefaultPasswordHasher;

//and the function
    protected function _setPassword(string $password) : ?string
    {
        if (strlen($password) > 0) {
             $hasher = new AuthDefaultPasswordHasher();
             return $hasher->hash($password);
        }
    }

1 个答案:

答案 0 :(得分:0)

解决方案是导航到Cake安装目录(包含src和config文件夹等),然后再次运行Composer调用。显然,这会将文件放在正确的目录中,然后错误不再出现。