使用Apigility实现具有访问控制机制的RESTful API



我想使用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——检查视图中的权限)

最新更新