【问题标题】:How to implement node_acl in mean stack with node.js如何使用 node.js 在平均堆栈中实现 node_acl
【发布时间】:2013-11-02 14:38:18
【问题描述】:

我想用我的 MEAN 应用程序实现 ACL。我有几个关于实施的问题。

  1. 如何获得带有 mongodb 后端实例化的 acl server.js 以便我可以在路由器中使用相同的实例 控制器?
  2. 创建一个管理员控制的acl控制器有意义吗? 可以用来创建和分配角色,以及更改权限吗?
  3. 我希望将 router.js 中的所有资源公开为 acl 具有相关操作的资源。这会自动发生吗 当您将 acl.middleware() 添加到路由时?
  4. 如何定义“编辑自己的内容”之类的权限?

以下是我提出的控制器方法列表,用于实现 ACL 提供的允许管理员管理 ACL 设置的方法:

  • set_acl(角色、资源、权限)
  • remove_role(角色)
  • what_resources(角色,[权限])
  • user_roles (userId)
  • allowed_permissions (userId, [resources])
  • add_user_roles(用户 ID、角色)
  • remove_user_roles(用户 ID、角色)

我有什么遗漏吗?

【问题讨论】:

    标签: node.js mongodb express acl


    【解决方案1】:

    https://npmjs.org/package/acl 它使用 mongo db 作为后端

    【讨论】:

    • ACL npm 是 node_acl: github.com/optimalbits/node_acl 我目前正在考虑。你在你的任何项目中使用过它吗?我正在寻找 MEAN 堆栈的指导。
    • 是的,mongodb 唯一的坏处是 ACL 使用的数据量非常大(如果我们有 10 个用户、10 个文档和 2 个授权(读、写)-我们有 200 条记录ACL 表)。我认为更好的方法是使用类似 unix 的东西——每个文档都有用户 ID 和组 ID,并且有用户组。我设法从头开始编写这样的系统,但由于个人问题我没有成功
    最近更新 更多