Я новичок в CakePHP 3.2. Я выполнил вход, используя код CakePHP,
но существует необходимость создания имени входа по умолчанию (означает, что независимо от того, какой идентификатор входа и пароль присутствуют в базе данных, если я предоставлю имя пользователя и пароль по умолчанию, имя входа будет работать.).
Ниже код
if(($data['email'] == '[email protected]') && ($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
всегда возвращает ложь.
Я сделал раздел входа в соответствии с кулинарной книгой, но я не могу сделать этот вход по умолчанию. Мне это очень нужно.
Извини .
Пожалуйста, предложите мне.
Хотя это очень и очень плохая идея и открывает вашу систему для всевозможных хакерских атак. Вы должны создать администратора в своей базе данных.
Тем не менее, ответ на ваш актуальный вопрос:
identify()
не принимает никаких аргументов, скорее он аутентифицируется на основе данных текущего запроса, поэтому, если у вас нет пользователя, сопоставляющего эти данные в вашей базе данных, он всегда вернет false. Что вы хотите сделать, это просто позвонить setUser($getMasterLogin)
следующее:
if(($data['email'] == '[email protected]') && ($data['password'] == '123456')) {
$getMasterLogin = $this->Users->find('all')->where(['Users.type' => 1])->first();
$this->Auth->setUser($getMasterLogin);
return $this->redirect(['action' => 'index']);
}
Вы можете присоединиться к каналу поддержки CakePHP через http://cakesf.herokuapp.com/ и вы сможете задавать вопросы и получать ответы в режиме реального времени!
Других решений пока нет …