2015-10-22 39 views
0

出於某種原因,CakePHP身份驗證組件不會讓我註銷。CakePHP 3身份驗證註銷錯誤:未找到身份驗證適配器「loginAction」

奇怪的是,這個錯誤只發生在最近,我不記得在我的CakePHP 3應用程序的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」。

然後,當我從驗證組件完全除去陣列'loginAction'誤差變爲錯誤:認證適配器「存儲」未找到。

這似乎工作,雖然,當我加載該組件沒有任何PARAMS:
$this->loadComponent('Auth')

對於登錄我需要驗證組件設置類似上述。它與CakePHP類似,它的文檔如下:http://book.cakephp.org/3.0/en/controllers/components/authentication.html#configuring-authentication-handlers

任何想法爲什麼CakePHP不會讓我突然退出?

回答

1

哦,我的!我不能beleave我浪費了所有的時間...

的驗證PARAMS都搞砸了,那他們應該怎麼看起來像:

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