【发布时间】:2016-04-30 04:56:57
【问题描述】:
我正在使用我所学到的here 来构建用户身份验证系统。本质上它是使用护照本地身份验证。
如何将用户访问级别和角色添加到 SailsJS?例如,我想要访问级别(canWriteAll、canWriteOwn、canRead)以及分配给这些用户角色(管理员、贡献者、用户...等)。
【问题讨论】:
标签: sails.js passport.js
我正在使用我所学到的here 来构建用户身份验证系统。本质上它是使用护照本地身份验证。
如何将用户访问级别和角色添加到 SailsJS?例如,我想要访问级别(canWriteAll、canWriteOwn、canRead)以及分配给这些用户角色(管理员、贡献者、用户...等)。
【问题讨论】:
标签: sails.js passport.js
Sails 具有内置的基于策略的访问控制系统。 Check out documentation 首先。
如果是简单的形式:
在您的用户模型中创建所需的访问级别属性,默认情况下等于最基本的访问级别。这可以是数字(如 1 - 管理员和 100 - 未经身份验证的用户,以及它们之间的其他角色)或字符串(如 administrator、moderator、guest)或任何内容。
在policies 文件夹中创建中间件(查看文档以获取示例)。
在policies 配置文件中为每个控制器及其方法添加策略。
喜欢:
UserController: {
'*': false, // disallow for each method not listed here
find: ['guest'], // check guest.js middleware for permission
destroy: ['administrator'] // check administrator.js middleware for permission
}
【讨论】:
我在这里发布答案可能有点晚了,但是还有另一种方法可用于帆中的访问控制。
下面的文档链接。
access-control-and-permissions
Sails 中的策略旨在控制对特定操作的二进制(“是或否”)访问。它们非常适合检查用户是否登录或其他简单的“是或否”检查,例如登录用户是否是“超级管理员”。
但对于动态权限,
对于更复杂的权限方案,例如请求用户代理的访问权限取决于他们是谁以及他们想要做什么的那些方案,您需要让数据库参与进来。虽然您可以使用策略来完成此操作,但使用帮助程序通常更直接且可维护。
【讨论】: