【发布时间】:2020-03-13 17:28:05
【问题描述】:
我无法使用蛋糕烘焙,我有一个与身份验证组件相关的错误。 应用程序使用此组件。 我错过了什么?
这是完整的日志:
bin/cake bake controller styles 1 ↵
Baking controller class for Styles...
Creating file /opt/applications/p35/src/Controller/StylesController.php
Wrote `/opt/applications/p35/src/Controller/StylesController.php`
Bake is detecting possible fixtures...
Exception: The request object does not contain the required `authentication` attribute
In [/opt/applications/p35/vendor/cakephp/authentication/src/Controller/Component/AuthenticationComponent.php, line 141]
2020-03-13 18:20:25 Error: [Exception] The request object does not contain the required `authentication` attribute in /opt/applications/p35/vendor/cakephp/authentication/src/Controller/Component/AuthenticationComponent.php on line 141
Stack Trace:
- /opt/applications/p35/vendor/cakephp/authentication/src/Controller/Component/AuthenticationComponent.php:229
- /opt/applications/p35/src/Controller/AppController.php:82
- /opt/applications/p35/vendor/cakephp/cakephp/src/Controller/Controller.php:212
- /opt/applications/p35/vendor/cakephp/bake/src/Command/TestCommand.php:339
- /opt/applications/p35/vendor/cakephp/bake/src/Command/TestCommand.php:245
- /opt/applications/p35/vendor/cakephp/bake/src/Command/TestCommand.php:120
- /opt/applications/p35/vendor/cakephp/bake/src/Command/ControllerCommand.php:201
- /opt/applications/p35/vendor/cakephp/bake/src/Command/ControllerCommand.php:147
- /opt/applications/p35/vendor/cakephp/bake/src/Command/ControllerCommand.php:64
- /opt/applications/p35/vendor/cakephp/cakephp/src/Console/BaseCommand.php:175
- /opt/applications/p35/vendor/cakephp/cakephp/src/Console/CommandRunner.php:336
- /opt/applications/p35/vendor/cakephp/cakephp/src/Console/CommandRunner.php:171
- /opt/applications/p35/bin/cake.php:12
谢谢
还有AppController.php的第82行,在公共函数initialize()中
76 $this->loadComponent('Authentication.Authentication',[
77 'requireIdentity'=>true,
78 'logoutRedirect' => '/users/login']);
79
80
81 $this->user=$this->Authentication->getIdentity();
82 $result = $this->Authentication->getResult();
83 if ($result->isValid()) {
84 $identity=$this->Authentication->getIdentity();
85
...
【问题讨论】:
-
您使用的是哪个版本的身份验证插件?如果不确定,请在
composer.lock文件中查找"cakephp/authentication"。 -
还有你的
AppController中的82行到底是做什么的,它位于什么上下文中? -
"name": "cakephp/authentication", "version": "2.1.0", grep authentication composer.json "cakephp/authentication" : "^2.0",
-
我已经用第 82 行更新了最初的帖子
-
从父级调用它的位置来看,我假设代码在控制器
initialize()方法中?
标签: authentication cakephp cakephp-bake cakephp-4.x