是否有一个库与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消息。

博客文章写得很好(比这个总结要好得多),并且更详细地描述了这一点 – 会推荐阅读。