我想使用Zend Framework 2创建一个RESTful API。尽管我对ZF2缺乏经验,但我选择了这个框架,因为它是松散的coupeling以及代码经常被审计的事实。我找到了Zend提供的工具Apigility,它似乎很容易实现。但是有一件事没有被直接覆盖,我甚至不确定Apigility是否对我有意义:
我需要一个用户角色概念,其中一些用户只能查看和修改他们自己创建的资源,而其他用户则能够查看和修改所有资源。还有端点(控制器),仅适用于某些用户。
使用ACL模块可以实现对某些端点的权限管理,但我不知道如何实现对资源的过滤。
答案 0 :(得分:1)
您需要采取一些策略才能完成所有这些工作。
您可以通过扩展zf-mvc-auth提供的默认授权侦听器(或添加其他侦听器)来处理您的端点访问控制。这应该允许您控制是否可以看到端点。
就资源的访问控制(过滤)而言,您可能需要将一些性质的授权容器注入资源服务中以处理您的授权逻辑。看看zfc-rbac食谱,看看它的外观(https://github.com/ZF-Commons/zfc-rbac/blob/master/docs/07.%20Cookbook.md#a-real-world-application-part-4---checking-permissions-in-the-view)