是否有一个库与Hapi的细粒度的ACL /用户权限兼容?
希望使用HapiJS作为我们的API服务器。 我们需要细粒度的用户权限,例如“用户A可以编辑字段B”,“用户C可以查看字段D”以获得给定的模型/资源。
在我们开始构build一些东西之前,我一直在寻找是否已经完成了与Hapi兼容的事情。
我最近一直在为hapijs做一个ACL项目。 它应该给你一个好的开始。 https://www.npmjs.org/package/hapi-authorization
我刚刚阅读了一篇文章,其中使用内置范围validation了ACL权限。
这里是提到的文章的链接: https : //blog.andyet.com/2015/06/16/harnessing-hapi-scopes/
要快速恢复(使用上述链接中的示例),您将看到如下所示的用户对象:
{ "username": "han", "scope": ["door-trash-compactor"] }
该范围可以由任何支持此用户的ACL生成。 在这种情况下,您可以使用id trash-compactor
的资源door
进行检查,如下所示:
server.route({ method: 'GET', route: '/doors/{door_id}', config: { handler: function (request, reply) { reply(request.params.door_id ' door is closed'); }, auth: { scope: ['door-{params.door_id}'] } } });
范围door-{params.door_id}
将被翻译成door-trash-compactor
,然后将被validation。 韩的垃圾压缩机门的要求将是有效的,他会得到door is closed
消息。
博客文章写得很好(比这个总结要好得多),并且更详细地描述了这一点 – 会推荐阅读。