【问题标题】:Is there a CakePHP isAuthorized() for simple allow()/deny()?是否有用于简单 allow()/deny() 的 CakePHP isAuthorized()?
【发布时间】:2011-10-15 06:29:41
【问题描述】:

我有一个应用程序,我在其中使用 allow()/deny() 进行大部分访问控制,并且我希望能够检查 beforeFilter() 用户是否被授权。如果我使用的是控制器或其他身份验证方法之一,我可以使用 isAuthorized(),但这不适用于允许/拒绝 - 如果用户未登录但他们已打开,我希望它返回 true可公开访问的页面。

也许后退一步并允许其他解决方案:我使用子域 (user.example.com) 设置了我的应用程序,如果他们不使用子域,我想为非子域返回 404前端页面,并且只允许他们通过用户子域访问它们。

有没有更好的方法来做到这一点 - 也许通过添加控制器授权?我仍然会遇到需要知道他们是否被授权的问题。当授权失败时,有没有办法改变 Auth 组件的功能?我希望它返回 404,但仅在某些条件下(具体来说,用户没有通过子域访问该站点)。

【问题讨论】:

    标签: php cakephp authentication


    【解决方案1】:

    allow() 和deny() 仅指无需登录即可访问url。控制器中的isAuthorized 回调更适合已经通过登录表单的用户的权限。

    请查看本教程以获得澄清:http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

    【讨论】:

    • 是的,这就是我收集的内容......我基本上想要一种方法来判断用户是否被允许()访问页面,也就是说,如果他们所在的页面是可公开访问的页面。
    【解决方案2】:

    您可以使用Blackhole 返回 404 错误。剩下的问题我不完全明白。您使用 Auth 但使用自定义 ACL?

    【讨论】:

    • 感谢黑洞链接 - 这让事情变得更容易。而且我还没有真正使用 ACL(还)——只是一些手动权限检查/重定向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多