默认登录在cakephp 3.2中不起作用

时间:2016-04-01 12:56:41

标签: php cakephp cakephp-3.0 cakephp-3.x cakephp-3.2

我是cakephp 3.2的新手。我使用cakephp代码登录, 但是需要创建一个默认登录名(意味着无论登录ID和密码是什么存在于数据库中,如果我将提供默认登录用户名和密码,登录将起作用。)。

以下是代码

if(($data['email'] == 'admin@gmail.com') && ($data['password'] == '123456')) { 
    $getMasterLogin = $this->Users->find('all')->where(['Users.type' => 1])->first();
    $user = $this->Auth->identify($getMasterLogin);//pj($user);exit;//alaway returnig false
    //$this->Auth->setUser($user);
    return $this->redirect(['action' => 'index']);
}

此处$this->Auth->identify始终返回false。 我按照烹饪书做了登录部分,但是我无法进行此默认登录。我非常需要它。 对不起 请建议我。

1 个答案:

答案 0 :(得分:1)

虽然这是一个非常糟糕的主意,并且会将您的系统打开以进行各种黑客攻击。您应该在数据库中创建管理员用户。

但是,您实际问题的答案是:

identify()不接受任何参数,而是基于当前请求数据进行身份验证,因此如果您没有在数据库中匹配该数据的用户,则它将始终返回false。你想要做的只是按如下方式调用setUser($getMasterLogin)

if(($data['email'] == 'admin@gmail.com') && ($data['password'] == '123456')) { 
    $getMasterLogin = $this->Users->find('all')->where(['Users.type' => 1])->first();
    $this->Auth->setUser($getMasterLogin);
    return $this->redirect(['action' => 'index']);
}

您可以通过http://cakesf.herokuapp.com/加入CakePHP支持冗余频道,您就可以实时提问并获得答案!