CakePHP 3 Auth注销 - 错误:未找到身份验证适配器“loginAction”

问题描述 投票:0回答:1

由于某种原因,CakePHP Auth组件不会让我退出。

奇怪的是这个错误最近才发生,我不记得在我的CakePHP 3应用程序的Auth组件上改变了什么。

我通过以下方式设置Auth组件:

$this->loadComponent('Auth', [
    'authenticate' => [
        'loginAction' => [
            'controller' => 'User',
            'action' => 'login'
        ],
        'Form' => [
            'finder' => 'auth',
            'fields' => ['username' => 'email', 'password' => 'password']
        ],
        'storage' => 'Session'
    ]
]);
$this->Auth->allow();

登录按预期工作,但当我使用$this->Auth->logout()注销时出现以下错误:

发生了一个内部的错误 错误:未找到身份验证适配器“loginAction”。

然后,当我从Auth组件中完全删除数组'loginAction'时,错误更改为错误:未找到身份验证适配器“storage”。

它似乎工作,当我加载组件没有任何参数: $this->loadComponent('Auth')

对于登录,我需要如上所述设置Auth组件。它的类似CakePHP在它的文档中做到了:http://book.cakephp.org/3.0/en/controllers/components/authentication.html#configuring-authentication-handlers

任何想法为什么CakePHP不会让我突然退出?

php cakephp authentication cakephp-3.0
1个回答
2
投票

天啊!我无法相信我浪费了所有这些时间......

Auth params搞砸了,这应该是这样的:

$this->loadComponent('Auth', [
     'loginAction' => [
        'controller' => 'User',
        'action' => 'login'
     ],
     'authenticate' => [
        'Form' => [
            'finder' => 'auth',
            'fields' => ['username' => 'email', 'password' => 'password']
        ],
     ],
    'storage' => 'Session'
]);
© www.soinside.com 2019 - 2024. All rights reserved.