我正在使用我学到的here来构建用户身份验证系统。基本上它使用护照本地身份验证。
如何向SailsJS添加用户访问级别和角色?例如,我想访问级别(canWriteAll,canWriteOwn,canRead)以及分配给它们的用户角色(管理员,贡献者,用户等等)。
答案 0 :(得分:5)
Sails拥有内置的基于策略的访问控制系统。先Check out documentation。
简单形式如果是:
默认情况下,在User模型中创建所需的访问级别属性等于最基本的访问级别。这可以是数字(例如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
}
答案 1 :(得分:0)
我可能在这里发布答案有点晚了,但是帆中的访问控制还有另一种方法。
下面的文档链接。
access-control-and-permissions
Sails中的策略旨在控制对特定操作的二进制(“是或否”)访问。它们非常适合检查用户是否已登录或进行其他简单的“是或否”检查,例如已登录的用户是否是“超级管理员”。
但是对于动态权限,
对于更复杂的权限方案,例如那些请求用户代理的访问权限取决于他们是谁以及他们试图做什么的方案,您将需要涉及数据库。尽管您可以使用策略来完成此任务,但使用帮助程序通常更为直接和可维护。