2

我正在 Windows (XAMPP) 上使用 cakePHP v 1.3 开发应用程序。

大多数控制器都是在启用管理路由的情况下烘焙的。我想通过登录页面保护每个控制器的管理操作。我怎样才能做到这一点而不重复太多?

该问题的一种解决方案是“我在每个控制器的 admin_index 操作中检查登录信息”,然后相应地显示登录屏幕。
有没有更好的方法来做到这一点?

管理员的默认 URL(http://localhost/app/admin)指向用户控制器的 index_admin 操作(在 routes.php 文件中为此创建了一个新路由)

4

1 回答 1

6

使用身份验证组件。您可以为管理员路由设置它,如下所示:

// AppController::beforeFilter
function beforeFilter() {
    if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') {
        $this->Auth->deny('*');
        ...
    }
}

只检查index动作是没有意义的,这只是默默无闻,而不是安全。AuthComponent 将检查每个页面加载的权限。

于 2010-05-17T07:32:07.190 回答