使用除用户问题之外的auth表进行CakePHP身份验证

时间:2011-05-16 10:28:30

标签: authentication cakephp cakephp-1.3

我在开发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组件。

2 个答案:

答案 0 :(得分:0)

我与Cake 1.3有类似的问题,看来Auth组件的自动哈希与保存用户时的哈希不同。

我最终得到了这个解决方案: 我在保存之前已在用户控制器中添加了此内容。

$this->data['User']['password'] = Security::hash($this->data['User']['password']);

现在它工作正常......也许这会有所帮助。

答案 1 :(得分:0)

如果您尝试$this->Auth->authenticate =& ClassRegistry::init('Reviewer')获取对象的引用,该怎么办?

AuthComponent - authenticate Property