为了账号安全,请及时绑定邮箱和手机立即绑定

CakePHP 3.7 cakephp/身份验证插件。错误“需要身份验证才能继续”

CakePHP 3.7 cakephp/身份验证插件。错误“需要身份验证才能继续”

PHP
30秒到达战场 2021-09-05 18:05:01
我正在遵循烹饪书https://book.cakephp.org/authentication/1.1/en/index.html 中的指南。但是我的代码不断抛出错误在我的 app/Application.php 中,我像这样在函数引导程序中调用了身份验证插件    public function bootstrap()    {        parent::bootstrap();        $this->addPlugin('DebugKit');        $this->addPlugin('Authentication');在我的AppController.php 中,我已经这样设置了/** INITIALIZE  **/    public function initialize()    {        parent::initialize();        $this->loadComponent('RequestHandler', [            'enableBeforeRedirect' => false,        ]);        /**        *$this->loadComponent('Flash');        *         * load authenticator         * [$this->loadComponent description]         * @var [type]         *         */         $this->loadComponent('Authentication.Authentication', [             'logoutRedirect' => false // Default is false         ]);/** INITIALIZE  **/}和我的UsersController.php处理来自 https:localhost/users/login 的请求  public function login()     {       //$this->render(false);      $this->viewBuilder()->layout('Common/login');    $session = $this->request->session();      /*      **AUTHENTICATION       */       $result = $this->Authentication->getResult();      debug($result);          // regardless of POST or GET, redirect if user is logged in          if ($result->isValid()) {              $user = $request->getAttribute('identity');              // Persist the user into configured authenticators.              $this->Authentication->setIdentity($user);              $session->write('user_data',$user);              $redirect = $this->request->getQuery('redirect', ['controller' => 'Users', 'action' => 'display', 'index']);              return $this->redirect($redirect);          }          // display error if user submitted and authentication failed          if ($this->request->is(['post']) && !$result->isValid()) {              $this->Flash->error('Invalid username or password');          }       /*       **AUTHENTICATION        */    }我已经研究了几个小时,需要这个家伙的帮助:)
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

您应该在 beforeFilter 中为非授权操作定义允许操作,例如:

$this->Authentication->allowUnauthenticated(['login']);


查看完整回答
反对 回复 2021-09-05
  • 2 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信