我是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。
我按照烹饪书做了登录部分,但是我无法进行此默认登录。我非常需要它。
对不起
请建议我。
答案 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支持冗余频道,您就可以实时提问并获得答案!