3ログイン、すべてのcakephp3の文書が、それでも私は自分のコードがあるログインの問題に直面しています: CakePHPの私はすべてのチュートリアルを試してみましたが問題
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('Your username or password is incorrect.');
}
}
Appcontroller.php
public function initialize()
{
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'authorize'=> 'Controller',//added this line
'authenticate' => [
'Form' => [
'userModel' => 'Users', // Added This
'fields' => [
'username' => 'email',
'password' => 'password'
]
]
],
'loginAction' => [
'controller' => 'Users',
'action' => 'login'
]
]);
$this->Auth->allow(['add']);
}
Userscontroller.php
モデル/Entity/User.phpprotected $_accessible = [
'*' => true,
'id' => false
];
// ...
protected function _setPassword($password)
{
return (new DefaultPasswordHasher)->hash($password);
}
モデル/テーブル/ UsersTable.php
class UsersTable extends Table
{
public function validationDefault(Validator $validator)
{
return $validator
->notEmpty('username', 'A username is required')
->notEmpty('password', 'A password is required')
->notEmpty('role', 'A role is required')
->add('role', 'inList', [
'rule' => ['inList', ['admin', 'author']],
'message' => 'Please enter a valid role'
]);
}
}
私は多くのユーザーをユーザーに追加しました。テーブルフィールドは、電子メール、ユーザー名、パスワード、ロールです。
1.ユーザーテーブルにデータを保存すると、パスワードは暗号化された形式で保存されます
2.ログインフォームにアクセスしてユーザー名またはパスワードを入力すると、常に間違ったユーザー名またはパスワードが表示されます
3. $user = $this->Auth->identify();
それは常に私に空の価値を与えます。
4.何が問題なのか理解できません。
5.私はデバッグキットでSQLログを見ると、それは常に表示さ「 ないアクティブなデータベース接続」
これは古い記事ですが、私は同じ問題を抱えていると私は解決策を見つけた
あなたはsqliteのをインストールしたのに十分な大きさですか? –