是否有与Hapi兼容的库以获得细粒度的ACL /用户权限?

时间:2014-09-23 22:40:02

标签: node.js permissions acl user-permissions hapijs

希望将HapiJS用作我们的API服务器。我们需要细粒度的用户权限,例如"用户A可以编辑字段B" "用户C可以查看字段D"对于给定的模型/资源。

在我们开始构建之前,我一直在寻找是否已经完成了与Hapi兼容的事情。

2 个答案:

答案 0 :(得分:4)

我刚刚阅读了一篇文章,其中使用内置范围验证了ACL权限。

以下是上述文章的链接: https://blog.andyet.com/2015/06/16/harnessing-hapi-scopes/

要快速恢复(使用上面链接中的示例),您将获得一个如下所示的用户对象:

<Complain>

可以通过为此用户提供ACL的任何内容生成范围。在这种情况下,您拥有标识为<Complain>的资源{ "username": "han", "scope": ["door-trash-compactor"] } ,可以像这样进行检查:

door

范围trash-compactor将被翻译为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}'] } } }); ,然后将对其进行验证。 Han对垃圾压缩机门的请求是有效的,他将收到door-{params.door_id}消息。

博客文章写得很好(比本摘要好得多)并且更详细地描述了这一点 - 会推荐阅读。

答案 1 :(得分:3)

我最近一直致力于针对hapijs的ACL项目。它应该会给你一个良好的开端。 https://www.npmjs.org/package/hapi-authorization