node.js - 如何在sails.js 中实现对路由和函数的权限?
问题描述
我是风帆新手,我有一个 PostgreSQL 数据库。我想实现用户管理。我有一些用户each user can be assigned to multiple groups
,each group can be assigned to multiple roles
和each role can have some permissions
!我检查了风帆许可文件,但我没有得到它。例如,我希望某些组不能添加或编辑用户,或者我希望某些角色不能看到用户管理菜单。我应该怎么办?
解决方案
我在这里发布答案可能有点晚了,但是有一种方法可用于帆中的访问控制。
Sails 内置基于策略的访问控制系统。
- 政策
Sails 中的策略旨在控制对特定操作的二进制(“是或否”)访问。它们非常适合检查用户是否登录或其他简单的“是或否”检查,例如登录用户是否是“超级管理员”。
但是对于动态权限,
- 帮手
帮助程序、访问控制和权限文档的链接
对于更复杂的权限方案,例如请求用户代理的访问权限取决于他们是谁以及他们试图做什么的那些方案,您需要涉及数据库。虽然您可以使用策略来完成此操作,但使用帮助程序通常更直接且可维护。
可以在这里找到示例, 使用助手进行访问控制和许可
因此,您可以使用 postgreSQL 来存储角色及其各自的权限,并检索用户角色并根据需要检查策略/帮助程序中的权限。
推荐阅读
- ruby-on-rails - Heroku Sendgrid 附加组件
- java - 如何处理来自片段的点击事件,产生错误 Nullpointer 异常,尝试从空对象引用调用 *setOnClickListener*
- ios - iOS/Obj-C - 将 Google 地图分配给自定义 UIView?
- java - 如何覆盖或修改子 pom 中的父 pom 存储库?
- javascript - 在脚本标签中使用烧瓶 url_for 将参数传递给路由
- unity3d - 触摸操纵杆干扰操作按钮
- c++ - `copy constructor` 和 `move constructor` 之间的区别。谁能通过一些简单的例子说清楚
- c - 有没有一种方法可以在没有对 sscanf 和 fgets 进行大量检查的情况下读取 C 中的文件?
- reactjs - 使用地图在列表(多对多)中使用映射
- python - 使用python删除阿拉伯文本文件中的特殊字符,数字