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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CakePHP 3 Auth注销 - 错误:未找到身份验证适配器“loginAction”相关的知识,希望对你有一定的参考价值。

由于某种原因,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不会让我突然退出?

答案

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

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

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

以上是关于CakePHP 3 Auth注销 - 错误:未找到身份验证适配器“loginAction”的主要内容,如果未能解决你的问题,请参考以下文章

注销时flutter_facebook_auth插件未清除数据

Cakephp auth 和 acl 未登录用户组

Cakephp 3每次请求都会更新会话

CakePHP Auth 登录(错误的方法?)

使用 Cakephp-jwt-auth [CakePHP 3] 过期后颁发新令牌

错误:未找到:'dart:html' 使用带有颤振的 googleapis_auth 飞镖团队包时