2016-06-14 15 views
3

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.php

protected $_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ログを見ると、それは常に表示さ「 ないアクティブなデータベース接続」
これは古い記事ですが、私は同じ問題を抱えていると私は解決策を見つけた

+0

あなたはsqliteのをインストールしたのに十分な大きさですか? –

答えて

0

に私を助けてくださいhere 。基本的に私のパスワード列(データベース内)のサイズは十分ではありませんでした(わずか45文字)。これらは、以前のリンクでは、元の引用された:

は、うまくいけば、データベースのパスワード欄には、:)

関連する問題