我实际上正在构建一个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数据库
提前致谢
答案 0 :(得分:0)
假设您正在使用express
(基于标记),sails.js是一个很好的选项,可以将您的应用功能扩展到表达给您的基本REST功能之外。 Sails有一些有用的插件,可以帮助管理角色,用户和权限: