Sails.js SailsJS用户访问级别和角色

Sails.js SailsJS用户访问级别和角色,sails.js,passport.js,Sails.js,Passport.js,我正在用我学到的知识来构建一个用户身份验证系统。本质上,它使用passport本地身份验证 如何将用户访问级别和角色添加到SailsJS?例如,我希望访问级别(canWriteAll、canWriteOwn、canRead)具有分配给的用户角色(管理员、参与者、用户等)。Sails具有内置的基于策略的访问控制系统。首先 简单表格(如果是): 默认情况下,在用户模型中创建与最基本访问级别相同的必需访问级别属性。这可以是数字(如1-管理员和100-未经身份验证的用户,以及他们之间的其他角色)或字符

我正在用我学到的知识来构建一个用户身份验证系统。本质上,它使用passport本地身份验证


如何将用户访问级别和角色添加到SailsJS?例如,我希望访问级别(canWriteAll、canWriteOwn、canRead)具有分配给的用户角色(管理员、参与者、用户等)。

Sails具有内置的基于策略的访问控制系统。首先

简单表格(如果是):

  • 默认情况下,在用户模型中创建与最基本访问级别相同的必需访问级别属性。这可以是数字(如1-管理员和100-未经身份验证的用户,以及他们之间的其他角色)或字符串(如
    管理员
    主持人
    来宾
    )或任何内容

  • 策略
    文件夹中创建中间件(查看文档中的示例)

  • 在配置文件中,为每个控制器及其方法添加策略

比如:


Sails具有内置的基于策略的访问控制系统。首先

简单表格(如果是):

  • 默认情况下,在用户模型中创建与最基本访问级别相同的必需访问级别属性。这可以是数字(如1-管理员和100-未经身份验证的用户,以及他们之间的其他角色)或字符串(如
    管理员
    主持人
    来宾
    )或任何内容

  • 策略
    文件夹中创建中间件(查看文档中的示例)

  • 在配置文件中,为每个控制器及其方法添加策略

比如:


我在这里发布答案可能有点晚了,但还有一种方法可用于sails中的访问控制

下面是文档链接

Sails中的策略用于控制对特定操作的二进制(“是或否”)访问。它们在检查用户是否登录或其他简单的“是或否”检查(如登录用户是否是“超级管理员”)方面非常有效

但对于动态权限

对于更复杂的权限方案,例如请求用户代理的访问权限取决于他们是谁以及他们试图做什么的方案,您需要涉及数据库。虽然您可以使用策略来实现这一点,但使用助手通常更为直接和易于维护

你可以在这里找到例子,

我在这里发布答案可能有点晚了,但还有一种方法可用于sails中的访问控制

下面是文档链接

Sails中的策略用于控制对特定操作的二进制(“是或否”)访问。它们在检查用户是否登录或其他简单的“是或否”检查(如登录用户是否是“超级管理员”)方面非常有效

但对于动态权限

对于更复杂的权限方案,例如请求用户代理的访问权限取决于他们是谁以及他们试图做什么的方案,您需要涉及数据库。虽然您可以使用策略来实现这一点,但使用助手通常更为直接和易于维护

你可以在这里找到例子,

谢谢Glen,如果没有问题,我会尝试接受。您的回答帮助我理清了流程。好的,我已经在我的用户模型中添加了访问级别属性。并将所需的控件添加到policies.js。我还向策略文件夹“isAdmin.js”和“isUser.js”中添加了两个文件,但是我在访问中间件中的模型属性时遇到了问题,我该怎么做呢?谢谢Glen,如果没有问题,我会尝试接受。您的回答帮助我理清了流程。好的,我已经在我的用户模型中添加了访问级别属性。并将所需的控件添加到policies.js。我还向策略文件夹“isAdmin.js”和“isUser.js”添加了两个文件,但是我在访问中间件中的模型属性时遇到了问题,我该怎么做?
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
}