如何解决CakePhp 4.x基本身份验证
我一直沿用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);
}
}
解决方法
解决方案是导航到Cake安装目录(包含src和config文件夹等),然后再次运行Composer调用。显然,这会将文件放在正确的目录中,然后错误不再出现。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。