我在开发cakephp身份验证时遇到很多问题。为此,我正在尝试使用名为reviewers
的表,其中包含字段用户名和密码。
我查了一下,并从登录表单中发送了正确的数据(用户名和密码)。
文件app_controller.php包含:
class AppController extends Controller {
var $components = array('Auth', 'Session', 'Cookie', 'P28n');
function beforeFilter() {
$this->Auth->authenticate = ClassRegistry::init('Reviewer');
Security::setHash('sha1'); // or sha1 or sha256
$this->Auth->userModel = 'Reviewers';
$this->Auth->fields = array('username' => 'username', 'password'=>'password');
$this->Auth->loginRedirect = array('controller' => 'reviewers', 'action' => 'view');
}
我如何检查和调试问题?我得到的错误是用户名和密码组合不正确。
让我生气的是,我之前已经开发了类似的功能,并且没有问题........请帮助。
UPDATE:使用cakephp debuggint工具,看起来永远不会调用auth组件。
答案 0 :(得分:0)
我与Cake 1.3有类似的问题,看来Auth组件的自动哈希与保存用户时的哈希不同。
我最终得到了这个解决方案: 我在保存之前已在用户控制器中添加了此内容。
$this->data['User']['password'] = Security::hash($this->data['User']['password']);
现在它工作正常......也许这会有所帮助。
答案 1 :(得分:0)
如果您尝试$this->Auth->authenticate =& ClassRegistry::init('Reviewer')
获取对象的引用,该怎么办?