我正在使用nodejs,过去一周一直在研究acl/authorization。我只找到了几个,但似乎没有一个具有我需要的所有功能。最接近的是https://github.com/OptimalBits/node_acl,但我认为它不支持通过 id 保护资源(例如,如果我想允许用户 12345 并且只有用户 12345 访问 user/12345/edit )。因此,我认为我将不得不为自己制作一个自定义的 acl 解决方案。
我的问题是,在每个用户对象下存储角色(用户、管理员、版主等),而不是创建另一个集合/表来映射每个用户及其授权规则,有哪些优点和缺点?node_acl 使用一个单独的集合,而其他大多数依赖于用户对象中的角色数组。
顺便说一句,我目前正在使用 Mongodb。但是,我尚未研究使用关系数据库与非关系数据库进行身份验证的优缺点,所以如果您的答案取决于此,请告诉我。
当我写这篇文章时,我想到了一件事。如果我将角色存储在单独的集合中,它会更便携。我将能够更轻松地更换 acl 系统。(我认为?)