cakephp 3.x默认身份验证不起作用

时间:2015-12-18 14:28:11

标签: php authentication cakephp

首先,我非常感谢这个伟大的社区,我在那里学到了很多东西。你是最棒的。 :)

现在我的身份验证遇到了麻烦。我有一个简单的用户登录,我总是得到一个错误的信息用户名或密码是假的。 我不知道为什么。 :(

我在cakephp 3.x的官方教程附近工作。 所以这是我的AppController代码:

public function initialize()
    {
        parent::initialize();

        $this->loadComponent('RequestHandler');
        $this->loadComponent('Flash');
        $this->loadComponent('Auth', [
            'authenticate' => [
                'Form' => [
                    'fields' => [
                        'username' => 'mail',
                        'password' => 'password'
                    ]
                ]
            ],
            'loginAction' => [
                'controller' => 'Users',
                'action' => 'login'
            ]
        ]);

        $this->Auth->allow(['display']);
    }

这是UsersController的代码:

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('Name or Password is wrong');               
        }               
    }

以下是我的User.php(实体)中的代码:

protected function _setPassword($value){

        $hasher = new DefaultPasswordHasher();
        return $hasher->hash($value);
}

这就是我对此的看法:

<h1>Login</h1>
<?= $this->Form->create() ?>
<?= $this->Form->input('email') ?>
<?= $this->Form->input('password') ?>
<?= $this->Form->button('Login') ?>
<?= $this->Form->end() ?>

这是我第一次在这里发布和第一次使用CakePHP 3.0,所以请帮助我。 :)

请原谅我更糟糕的英语。 ^^

0 个答案:

没有答案