Authentication CakePHP 2.6已授权,未被调用

Authentication CakePHP 2.6已授权,未被调用,authentication,cakephp,cakephp-2.6,Authentication,Cakephp,Cakephp 2.6,我有一个工作项目,我想用身份验证扩展它。我遵循了简单的身份验证和授权教程 登录工作,我可以打印用户名等,但访问控制不起作用。授权的方法根本不起作用。我错过了什么 编辑-我收到以下错误 "You are not authorized to access that location." 我的AppController的一部分: public $components = array('Flash', 'RequestHandler', 'Cookie', 'Session', 'Auth' =>

我有一个工作项目,我想用身份验证扩展它。我遵循了简单的身份验证和授权教程

登录工作,我可以打印用户名等,但访问控制不起作用。授权的方法根本不起作用。我错过了什么

编辑-我收到以下错误

"You are not authorized to access that location."
我的AppController的一部分:

public $components = array('Flash', 'RequestHandler', 'Cookie', 'Session', 'Auth' => array(
        'loginRedirect' => array(
            'controller' => 'status',
            'action' => 'index'
        ),
        'logoutRedirect' => array(
            'controller' => 'user',
            'action' => 'login'
        ),
        'authenticate' => array(
            'Form' => array(
                'passwordHasher' => 'Blowfish'
            ),
        ),
        'authorize' => array('Controller')
    ));

public function isAuthorized($user)
{
    if (isset($user['role']) && $user['role'] === 'admin') return true;

    return false;
}
public function isAuthorized($user)
{
    debug($user); die();

    if ($this->action === 'index') return true;

    if (in_array($this->action, array('edit', 'delete')))
    {
        $postId = (int) $this->request->params['pass'][0];
        if ($this->Post->isOwnedBy($postId, $user['id'])) return true;
    }

    return parent::isAuthorized($user);
}
public function login()
{
    if ($this->request->is('post'))
    {
        if ($this->Auth->login())
        {
            return $this->redirect($this->Auth->redirectUrl()); // This is being called after login so it seems to work!
        }

        $this->Flash->error(__('Invalid username or password, try again'));
    }
}
我的taskController的一部分:

public $components = array('Flash', 'RequestHandler', 'Cookie', 'Session', 'Auth' => array(
        'loginRedirect' => array(
            'controller' => 'status',
            'action' => 'index'
        ),
        'logoutRedirect' => array(
            'controller' => 'user',
            'action' => 'login'
        ),
        'authenticate' => array(
            'Form' => array(
                'passwordHasher' => 'Blowfish'
            ),
        ),
        'authorize' => array('Controller')
    ));

public function isAuthorized($user)
{
    if (isset($user['role']) && $user['role'] === 'admin') return true;

    return false;
}
public function isAuthorized($user)
{
    debug($user); die();

    if ($this->action === 'index') return true;

    if (in_array($this->action, array('edit', 'delete')))
    {
        $postId = (int) $this->request->params['pass'][0];
        if ($this->Post->isOwnedBy($postId, $user['id'])) return true;
    }

    return parent::isAuthorized($user);
}
public function login()
{
    if ($this->request->is('post'))
    {
        if ($this->Auth->login())
        {
            return $this->redirect($this->Auth->redirectUrl()); // This is being called after login so it seems to work!
        }

        $this->Flash->error(__('Invalid username or password, try again'));
    }
}
UsersController的一部分:

public $components = array('Flash', 'RequestHandler', 'Cookie', 'Session', 'Auth' => array(
        'loginRedirect' => array(
            'controller' => 'status',
            'action' => 'index'
        ),
        'logoutRedirect' => array(
            'controller' => 'user',
            'action' => 'login'
        ),
        'authenticate' => array(
            'Form' => array(
                'passwordHasher' => 'Blowfish'
            ),
        ),
        'authorize' => array('Controller')
    ));

public function isAuthorized($user)
{
    if (isset($user['role']) && $user['role'] === 'admin') return true;

    return false;
}
public function isAuthorized($user)
{
    debug($user); die();

    if ($this->action === 'index') return true;

    if (in_array($this->action, array('edit', 'delete')))
    {
        $postId = (int) $this->request->params['pass'][0];
        if ($this->Post->isOwnedBy($postId, $user['id'])) return true;
    }

    return parent::isAuthorized($user);
}
public function login()
{
    if ($this->request->is('post'))
    {
        if ($this->Auth->login())
        {
            return $this->redirect($this->Auth->redirectUrl()); // This is being called after login so it seems to work!
        }

        $this->Flash->error(__('Invalid username or password, try again'));
    }
}

当你说该方法不起作用时,你得到的实际错误消息是什么?“你无权访问该位置。”这是我得到的全部信息。可能与错误无关,但你有
debug($user);模具()isAuthorized
方法中的code>?只是为了检查该方法是否被调用,无论我尝试什么,它都不会被调用。如果它被调用,我当然会注意到$user的调试输出。请提供您调用的路径(
/controller/action/param
)。