使用 Apigility 实现具有访问控制机制的 RESTful API
Implementation of a RESTful API with access control mechanism using Apigility
我想使用 Zend Framework 2 创建一个 RESTful API。尽管我对 ZF2 还很陌生,但我还是选择了这个框架,因为它是松耦合的,而且事实上该守则定期接受审核。我找到了 Zend 提供的工具 Apigility,它似乎很容易实现。但是有一件事没有直接涉及,我什至不确定 Apigility 对我是否有意义:
我需要一个用户角色概念,其中一些用户只能查看和修改他们自己创建的资源,而其他用户可以查看和修改所有资源。还有一些端点(控制器)只能用于某些用户。
可以通过ACL模块实现对某些端点的权限管理,但不知道如何实现对资源的过滤
您将需要采取一些策略来完成所有这些。
您的端点访问控制可以通过扩展 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)
我想使用 Zend Framework 2 创建一个 RESTful API。尽管我对 ZF2 还很陌生,但我还是选择了这个框架,因为它是松耦合的,而且事实上该守则定期接受审核。我找到了 Zend 提供的工具 Apigility,它似乎很容易实现。但是有一件事没有直接涉及,我什至不确定 Apigility 对我是否有意义:
我需要一个用户角色概念,其中一些用户只能查看和修改他们自己创建的资源,而其他用户可以查看和修改所有资源。还有一些端点(控制器)只能用于某些用户。
可以通过ACL模块实现对某些端点的权限管理,但不知道如何实现对资源的过滤
您将需要采取一些策略来完成所有这些。
您的端点访问控制可以通过扩展 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)