【问题标题】:cakePHP Auth - with allow/deny, what isAuthorized is actualley needed for?cakePHP Auth - 允许/拒绝,实际需要什么 isAuthorized?
【发布时间】:2011-11-14 23:14:56
【问题描述】:

检查一下:

function beforeFilter() {
    $this->Auth->authorize = 'controller';
    $this->Auth->allow('delete');
}

function isAuthorized() {
    if ($this->Auth->user('role') != 'admin') {
        $this->Auth->deny('delete');
    }

    ...
}

(来自:http://book.cakephp.org/view/1255/AuthComponent-Methods#deny-1258

这是 isAuthorized 的文档示例。如果我可以简单地在 beforeFilter 本身中设置条件,我需要它做什么?似乎是多余的无用代码..

【问题讨论】:

    标签: cakephp-1.3 authentication before-filter


    【解决方案1】:

    它允许您将您的授权逻辑与可能驻留在您的 beforeFilter 回调中的其他逻辑分开。此外,由于它是一种方法,您可以通过在 AppModel 中实现继承来利用继承,也可以覆盖或扩展各个控制器中的功能。您引用的代码示例并没有真正反映该方法应该真正返回真/假的事实。一个更好的例子可能是通过在 AppModel 中放置类似的内容来授权对站点范围内的管理员路由页面的访问:

    public function isAuthorized() {
        if (isset($this->params['admin']) && $this->Auth->user('role') == 'admin') {
            return true;
        }
        return false;
    }
    

    【讨论】:

    • 经过长时间的思考,我相信你是对的,主要是关于appModel中的继承
    猜你喜欢
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    相关资源
    最近更新 更多