在cakephp 2.4中调试AuthComponent

瓦斯平托

我用一个用户表烘焙了Cakephp应用程序,并且我试图使用Blowfish哈希来使身份验证正常工作。我的密码字段是varchar(255),因此它应该足够长以存储哈希值。应用中的所有内容都是默认的烘焙输出,请期待以下内容。

问题是创建用户后无法登录;我总是收到“访问被拒绝”。解决此问题的最佳方法是什么?

AppController.php

App::uses('Controller', 'Controller');

class AppController extends Controller {
    public function beforeFilter(){
        $this->Auth->allow('index', 'view');
    }

    public $components = array(
        'Session',
        'Auth' => array(
            'authenticate' => array(
                'Form' => array(
                    'fields' => array('username' => 'email'),
                    'passwordHasher' => 'Blowfish'
                    )
                ),
            'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
            'logoutRedirect' => array('controller' => 'users', 'action' => 'index'),
            'authError' => "Access Denied",
            'authorize' => array('Controller'),
        )
    );

    public function isAuthorized($user){
        return true;
    }
}

User.php(模型)

App::uses('AppModel', 'Model');
App::uses('BlowfishPasswordHasher', 'Controller/Component/Auth');

public function beforeSave($options = array()) {
    if (!empty($this->data['User']['password'])) {
        $passwordHasher = new BlowfishPasswordHasher();
        $this->data['User']['password'] = $passwordHasher->hash($this->data['User']['password']);
    }
    return true;
}

UsersController.php

public function login(){
    if ($this->request->is('post')) {
        if($this->Auth->login()) {
            $this->redirect($this->Auth->redirect());
        }
        else {
            $this->Session->setFlash('Access Denied');
        }
    }
}

login.ctp

echo $this->Form->create('user');
echo $this->Form->input('email');
echo $this->Form->input('password');
echo $this->Form->button('Log In', array('type' => 'submit');
echo $this->Form->end();

'调试($ this-> request); 死;' 在登录功能中给出以下输出。密码应该是*还是输入的哈希值?

data => array(
    'user' => array(
        'password' => '*****',
        'email' => '[email protected]'
    )
)
愤怒

1)听@waspinator echo $this->Form->create('User');

2)

App::uses('BlowfishPasswordHasher', 'Controller/Component/Auth');

删除广告并将其放在AppController中,应该是

App::uses('AuthComponent', 'Controller/Component');

3)评论这行

//public function beforeFilter(){
//    $this->Auth->allow('index', 'view');
//}

//public function isAuthorized($user){
//        return true;
//}

4)第一次将其放在用户控制器顶部,以便您可以保存密码

public function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->allow('edit', 'index', 'view);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CakePHP 2中的表单验证

来自分类Dev

CakePHP/2 中的伪定位

来自分类Dev

CakePHP 2.x中的hasAndBelongsToMany

来自分类Dev

无法设置cakephp AuthComponent sessionKey

来自分类Dev

Symfony2 + Doctrine2中的CakePHP模型行为?

来自分类Dev

Cakephp在浏览器中运行cakephp shell以进行调试

来自分类Dev

CakePHP 2复合主键

来自分类Dev

CakePHP的Restful API 2

来自分类Dev

CakePHP 2复合主键

来自分类Dev

CakePHP 3 AuthComponent中的“错误:在非对象上调用成员函数allow()”

来自分类Dev

从cakephp删除调试栏

来自分类Dev

在CakePHP 2.x中创建Cron作业

来自分类Dev

会话超时在Cakephp 2中不起作用

来自分类Dev

如何在cakephp2中调用javascript函数?

来自分类Dev

Auth注销在CakePHP 2.x中不起作用

来自分类Dev

如何在CakePHP 2.x中推迟内联jQuery

来自分类Dev

如何在CakePHP中基于2列条件获取数据

来自分类Dev

如何在cakephp2中创建日志文件

来自分类Dev

如何添加标题在cakephp 2中过期

来自分类Dev

CakePHP 2.x中的用户管理系统的行为很奇怪

来自分类Dev

重定向在CakePHP 2中不起作用

来自分类Dev

如何在CakePHP 2中运行全局插件的shell?

来自分类Dev

cakephp 2.x在javascript中执行控制器

来自分类Dev

如何发送410在cakephp 2.x中消失

来自分类Dev

在CakePHP 2中编辑表:更新/插入错误

来自分类Dev

CakePHP2 对不在表中的字段进行验证

来自分类Dev

CakePHP 2 Auth login()问题

来自分类Dev

加入cakephp 2.x

来自分类Dev

CakePHP 2.x Acl