我正在尝试使用$ this-> Auth-> login()登录我的管理员面板,但它总是返回false,我尽可能多地尝试,现在我需要你的帮助来解决这个问题,这是我的控制器文件代码:
class BrownieController extends BrownieAppController {
public $uses = array('User');
public function login() {
echo "<pre>";
print_r($this->request->data);
echo "</pre>";
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
if($this->request->isPost()) {
$this->Auth->flash(__('Invalid username or password, try again'));
}
}
}
在print_r数据上显示:
Array
(
[User] => Array
(
[email] => admin@xin.com
[password] => admin@123
)
)
这是我数据库中users表中存储的确切信息。
任何帮助将不胜感激。
答案 0 :(得分:2)
应该是&#39;用户名&#39;而不是&#39;电子邮件&#39;在请求数据中,除非您更改了配置
答案 1 :(得分:1)
原因1:
$this->Auth->login
以
array(
'User'=>array(
'username'=>'myusername',
'password'=>'mypassword'
)
)
原因2:
您必须完全按照数据库中显示的密码发送密码。
这条线下的一切可能但在这种情况下并不可能:
您确定在最初创建用户名和密码时,是否设置了哈希值?
将该条目与当前哈希值进行比较。要检查当前的哈希值,请将代码放在控制器函数(索引)中的某处,然后在那里导航。
debug(Security::hash('stuff'));
exit;
您还可以看到cakephp for login and logout docs。
我希望这有帮助!