我試圖按照食譜中的步驟執行身份驗證,但是看到Auth-> identify()函數仍然沒有向$ user變量返回任何內容,就像找不到憑據一樣。 我有一個名爲Usuarios,我想用戶的字段電子郵件和contrasena(密碼)進行身份驗證。無法實現身份驗證 - CakePHP
這裏就是我所做的:
AppController.php
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => ['finder' => 'auth',
'userModel' => 'Usuarios']
],
'loginAction' => [
'controller' => 'Usuarios',
'action' => 'login'
],
'unauthorizedRedirect' => $this->referer()
]);
$this->Auth->allow(['display']);
UsuariosController.php
public function login()
{
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
return $this->redirect($this->Auth->redirectUrl());
}
$this->Flash->error('Tu usuario o contraseña es incorrecta.');
}
}
login.ctp
<h1>Login</h1>
<?= $this->Form->create() ?>
<?= $this->Form->control('email') ?>
<?= $this->Form->control('password') ?>
<?= $this->Form->button('Login') ?>
<?= $this->Form->end() ?>
UsuariosTable.php
public function findAuth(\Cake\ORM\Query $query, array $options)
{
$query
->select(['id', 'email', 'contrasena'])
->where(['Usuarios.estado' => 1]);
return $query;
}
你的幫助是非常感謝!
謝謝!
問題解決了嗎? –