npm 包 @resin/sbvr-types 使用教程

阅读时长 5 分钟读完

@resin/sbvr-types 是一个 NPM 包,它为使用基于角色的访问控制 (Role-Based Access Control, RBAC) 的业务应用程序提供了一个通用的数据模型。这个包是为任何需要使用基于角色的访问控制的业务应用程序设计的。

在本教程中,我们将介绍如何使用 @resin/sbvr-types 包,并了解如何将它应用到自己的项目中。

安装 @resin/sbvr-types 包

在您的 Node.js 项目中,可以通过运行以下命令来安装 @resin/sbvr-types 包。

使用 @resin/sbvr-types 包

首先,您需要在项目中引入 @resin/sbvr-types 包。

接下来,您需要了解 @resin/sbvr-types 包中的几个关键对象和类型。

Role

Role 表示具有操作权限的用户角色。每个角色都有一个唯一的 roleId 和一个人类可读的名称 name

Resource

Resource 表示需要受到访问控制的资源或对象。每个资源都有一个唯一的 resourceId 和一个人类可读的名称 name

Rule

Rule 表示角色与资源之间的操作规则。例如,Admin 角色可以执行 createreadupdatedelete 操作,而 Users 资源只允许 read 操作。

Schema

Schema 包含所有角色、资源和规则,可以通过 typeIds 属性访问。

然后,您可以使用 schema 对象来创建 Fact 对象,该对象将填充基于角色的操作规则并进行验证。

Fact

Fact 表示将被验证的用户操作。每个 Fact 对象应具有以下属性:

  • roleId:执行操作的角色的唯一 ID。
  • resourceId:要访问的资源的唯一 ID。
  • action:用户请求执行的操作类型。

Validator

Validator 对象使用 schema 对象和 fact 对象来验证用户操作是否合法。

示例

现在,让我们来看一个完整的示例,使用上述对象和类型来验证一个用户操作是否合法。

-- -------------------- ---- -------
----- --------- - -----------------------------

----- --------- - --- ----------------------- ---------
----- --------- - --- ---------------------- ---------

----- ------------- - --- --------------------------- ---------

----- --------- - --- -------------------------------- ------------------------- ---------- ------- --------- -----------
----- --------- - --- -------------------------------- ------------------------- ----------

----- ------ - --- ---------------------------- ----------- ---------------- ----------- ------------

----- ---- - -
    ------- -------
    ----------- --------
    ------- --------
--

----- --------- - --- --------------------------- ------

---------------------------------- -- -- -----

在上面的示例中,user 角色试图执行 create 操作,但 users 资源只允许 read 操作,因此验证失败。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/192565