【问题标题】:CakePHP Authentication with Prefix Routing带有前缀路由的 CakePHP 身份验证
【发布时间】:2009-12-10 23:32:00
【问题描述】:

我正在使用 CakePHP 构建一个网站,我希望有 3 个部分:

  • 公共区域
  • 用户区
  • 管理区

我在 routes.php 中设置了前缀路由,看起来像

Router::connect('/user/:controller/:action/*', array('prefix' => 'user', 'user' => true));
Router::connect('/admin/:controller/:action/*', array('prefix' => 'admin', 'admin' => true));

我想要它,因此如果尚未登录且用户类型为“正常”(附带问题:用户是否正常 :P)以及任何带有 admin_ 前缀的操作,任何带有 user_ 前缀的操作都将重定向到登录屏幕重定向但需要管理员用户类型。

我开始尝试使用 Auth 组件,但它似乎相当不灵活,而 ACL 似乎过头了。任何人都可以就实现我想要的最佳方式提供一些建议吗?

【问题讨论】:

    标签: php authentication cakephp acl


    【解决方案1】:

    Auth 组件应该非常灵活。

    你可以这样写beforeFilter()

    //  I think it's params['prefix'], might be different
    //               vvvvvvvvvvvvvvvv
    if (isset($this->params['prefix'])) {
        $this->Auth->userScope = array('User.type' => $this->params['prefix']);
    }
    

    您还可以根据需要将isAuthorized() 函数添加到您的模型或控制器中,以进行更高级的身份验证。见http://book.cakephp.org/1.3/en/The-Manual/Core-Components/Authentication.html#authcomponent-variables

    【讨论】:

    • 非常感谢 deceze - 正是我需要的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2015-04-28
    • 1970-01-01
    • 2014-01-03
    • 2011-06-09
    • 2013-10-09
    • 2011-01-03
    相关资源
    最近更新 更多