REST API权限/角色管理

时间:2015-04-17 09:03:08

标签: node.js rest express

我实际上正在构建一个RESTFul API node.js,我遇到了一个问题。

域代码已编写,我现在正尝试管理此应用程序的访问权限,我不知道如何处理。

实际上,我需要允许/限制对用户的资源访问。实际上,我已经考虑过将权限存储在用户的数组中,如下所示:

{
   userName:"foo",
   userMail:"foo@bar.com",
   userApiRightsAllowed:[
      {
         uri:"/site/1594656",
         verb:"post",
      },
      {
         uri:"/sites",
         verb:"get",
      }
   ]
}

在自定义中间件中,我检查用户权限是否包含req.url和req.verb。

如果没关系,他可以访问资源。在另一种情况下,他获得了403 FORBIDDEN。

问题

问题是当我需要获取/ sites时。我授权用户获取/ sites,但他没有访问以查看/ sites / 65982等网站详细信息。

但在我的网站列表中,他会看到所有网站和/ sites / 65982。

问题

以最小的粒度管理API访问权限的最佳方法是什么:资源和方法?

如何让我的代码正常工作,并且用户只能看到他能够查看的网站?

编辑:我正在使用MongoDb数据库

提前致谢

1 个答案:

答案 0 :(得分:0)

假设您正在使用express(基于标记),sails.js是一个很好的选项,可以将您的应用功能扩展到表达给您的基本REST功能之外。 Sails有一些有用的插件,可以帮助管理角色,用户和权限: