1

在我的 AppController 中:

public $components = array('Auth' => array(
    'authenticate' => array('Blowfish')
),

在我的用户控制器中:

public function login() {    

if($this->request->isPost()) {
        $this->autoRender = false;
        if($this->Auth->login()) {
            $this->response->statusCode(200);
        }
        else {
            $this->response->statusCode(401);
        }
    }

}

并且发布到/users/login响应的任何数据始终为 200 并且用户已登录。我如何强制 Auth 不登录但检查数据库中的用户名和密码?

4

1 回答 1

0

我也遇到了河豚的问题。

但是,您是否记得更改密码在数据库中的存储方式?

您必须在“用户”模型中执行此操作:

App::uses('Security', 'Utility');

class User extends AppModel {

public function beforeSave($options = array()) {
    // Use bcrypt
    if (isset($this->data['User']['password'])) {
        $hash = Security::hash($this->data['User']['password'], 'blowfish');
        $this->data['User']['password'] = $hash;
    }
    return true;
}

}
于 2013-03-08T13:15:46.477 回答