无法使用$ this-> Auth-> login()登录。 (CakePHP的)

时间:2015-03-02 12:56:47

标签: php cakephp

我正在尝试使用$ 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表中存储的确切信息。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

应该是&#39;用户名&#39;而不是&#39;电子邮件&#39;在请求数据中,除非您更改了配置

答案 1 :(得分:1)

原因1:

$this->Auth->login

的形式获取数据
array(
    'User'=>array(
        'username'=>'myusername',
        'password'=>'mypassword'
    )
)

原因2:

您必须完全按照数据库中显示的密码发送密码。

这条线下的一切可能但在这种情况下并不可能:

您确定在最初创建用户名和密码时,是否设置了哈希值?

  1. 要检查您的哈希匹配,请使用phpmyadmin或mysql workbench查看您的users表,并找到用户chris22的密码字段
  2. 将该条目与当前哈希值进行比较。要检查当前的哈希值,请将代码放在控制器函数(索引)中的某处,然后在那里导航。

    debug(Security::hash('stuff'));
    exit;
    
  3. 您还可以看到cakephp for login and logout docs

    我希望这有帮助!