我知道這裏有一些類似的問題,但我沒有找到解決我的問題的答案。我的問題是身份驗證始終是錯誤的。這是我的代碼:CakePHP3登錄認證管理員端總是虛假
我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');
}
}
}
}
實體/聯繫
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