Я знаю, что у меня есть несколько похожих вопросов, но я не нахожу ответ, который разрешил мою проблему. Моя проблема - аутентификация всегда ложна. Это мой код:CakePHP3 login auth для администратора всегда всегда false
Мой AdminController
class AdminController extends AppController
{
public function initialize()
{
parent::initialize();
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'userModel' => 'Admins',
'fields' => [
'username' => 'email',
'password' => 'password'
]
]
],
'loginAction' => [
'controller' => 'Innerlogin',
]
]);
}
}
InnerloginController:
namespace App\Controller\Admin;
use App\Controller\AdminController;
use Cake\Event\Event;
class InnerloginController extends AdminController
{
public function index()
{
$this->loadModel('Admins');
if($this->request->is('POST'))
{
$admin = $this->Auth->identify();
if($admin)
{
$this->Auth->setUser($admin);
return $this->redirect([ 'controller' => 'admin' ]);
}
else
{
$this->Flash->error('Incorrect username or password');
}
}
}
}
Entity/Admin
namespace App\Model\Entity;
use Cake\Auth\DefaultPasswordHasher;
use Cake\ORM\Entity;
class Admin extends Entity
{
protected $_accessible = [
'*' => true,
'admins_id' => false
];
protected function _setPassword($password)
{
return(new DefaultPasswordHasher())->hash($password);
}
}
Innerlogin/index.ctp
<?= $this->Form->create() ?>
<?= $this->Form->input('username', ['label' => false, 'class' => 'input-cst' ]) ?>
<?= $this->Form->input('password', ['label' => false, 'class' => 'input-cst', 'type' => 'password' ]) ?>
<?= $this->Form->button(__('Login'), ['class' => 'btn btn-success right']) ?>
<?= $this->Form->end() ?>
Мои админы стол
Field Type Null Key Default Extra
admins_id int(11) NO PRI NULL auto_increment
name varchar(40) NO NULL
email varchar(50) NO NULL
password varchar(255) NO NULL
sex varchar(1) NO NULL
birthday varchar(40) NO NULL
created varchar(40) NO NULL
deleted varchar(40) NO 0
Любая идея, что я делаю неправильно? И кстати у меня есть другой родственный вопрос. Я хочу сделать две проверки подлинности: одна для пользователей другая для админов (я не хочу, чтобы столбцы ролей в одной таблице были проверены пользователем или администратором). Я могу это сделать? Он будет работать правильно?
Не задайте сразу несколько вопросов, вместо этого откройте новый вопрос, где вы сможете подробно объяснить свою проблему - спасибо! – ndm