【问题标题】:SailsJS user access levels and rolesSailsJS 用户访问级别和角色
【发布时间】:2016-04-30 04:56:57
【问题描述】:

我正在使用我所学到的here 来构建用户身份验证系统。本质上它是使用护照本地身份验证。

如何将用户访问级别和角色添加到 SailsJS?例如,我想要访问级别(canWriteAll、canWriteOwn、canRead)以及分配给这些用户角色(管理员、贡献者、用户...等)。

【问题讨论】:

    标签: sails.js passport.js


    【解决方案1】:

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

    如果是简单的形式:

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

    • 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
    }
    

    【讨论】:

    • 谢谢 Glen,如果我没有问题,我会试一试并接受。您的回答帮助我理清了这个过程。
    • 好的,我已经为我的用户模型添加了访问级别属性。并将所需的控件添加到policy.js。我还在我的策略文件夹“isAdmin.js”和“isUser.js”中添加了两个文件,但我无法访问中间件中的模型属性,我该怎么做?
    【解决方案2】:

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

    下面的文档链接。

    access-control-and-permissions

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

    但对于动态权限,

    对于更复杂的权限方案,例如请求用户代理的访问权限取决于他们是谁以及他们想要做什么的那些方案,您需要让数据库参与进来。虽然您可以使用策略来完成此操作,但使用帮助程序通常更直接且可维护。

    可以在这里找到示例, Using helper for access control and permission

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多