npm 包 @parthar/rbac 使用教程

角色基础访问控制 (RBAC) 是实现许多应用程序中对用户和对其控制的关键。RBAC 使得管理员可以分配一组操作和任务给一个或多个角色,然后将这些角色分配给用户或资源。这避免了将职责分配给单独的用户或资源,从而降低了维护工作,提高了安全性。

当我们在开发一些中到大型应用时,我们需要实现对我们机密用户数据的访问控制,这就需要用到@parthar/rbac这款包,因为它在RBAC的实现中非常灵活和易于使用。另外,该包还具有用户友好的 API接口,它使得我们可以快速地为我们的应用程序实现RBAC。

如何安装

可以使用 npm 提供的命令行工具简化安装过程。你可以运行本命令:

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

在这里, @parthar/rbac 是包的名称, npm install 是安装命令。

快速开始

首先,让我们如下导入并使用这个 @parthar/rbac 包:

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

然后呢?我们会创造一个配置、角色和用户,如下所示:

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

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

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

config 对象由权限表和角色列表组成。 每个条目都是一个路径和一个对象,该对象包含一个或多个角色。 对象也可以有其他属性,这些属性在检查权限时可能很有用。 当应用程序对特定路径进行访问检查时,它将通过检查每个角色来确定它是否具有访问该路径的权限。

roles 数组是当前用户所属的角色。在实际使用中,该属性会由用户登录认证后得到。

然后,我们需要创建一个 RBAC 实例并对其调用授权方法:

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

can 方法接受两个参数: user 和路径。 它将检查给定 user 是否具有访问给定路径的权限。 如果用户具有访问权限,则返回值为 true;否则为 false

最后,让我们看看 allowed 变量的值:

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

这意味着当前用户具有访问 '/write' 的权限。是的,这是多么简单和容易!

角色继承

RBAC 一个非常有用的功能是角色继承。 你可以创建一个新角色,并将其继承自一个或多个现有角色。 然后,你可以分配权限给新角色,并将它们分配给用户。当一个已经继承了一个或多个角色的用户访问一个受保护的路径时,这些权限将被合并并授权给该用户。

让我们看一个角色继承的例子:

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

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

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

在上面的例子中,新的 powerUser 角色从 userguest 角色继承了所有权限。同样地,新的 readUser 角色从 user 角色继承了所有权限。由于现在 powerUser 角色拥有了 userguest 两个角色的权限,所以它也拥有了这两个角色的子权限。

最后,让我们看看 allowed 变量的值:

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

是的,这说明一个已经继承了一个或多个角色的用户访问一个受保护的路径权限将被合并。RBAC包自动进行角色继承和权限合并,你可以很方便地为你的应用程序保护数据。

总结

这篇文章我们介绍了 @parthar/rbac 这款RBAC实现的包,以及其如何被用在现有的应用程序中。这款包非常易于使用且强大,无论是在小型还是大型应用程序中。同时它也拥有角色继承的特色,这使得你可以更加灵活地为你的应用程序实现访问控制。

当然这只是一个很初步的教程,更多内容可以查看它的官方文档。去获取更多的RBAC知识并为你的应用程序提供一定的保护吧!

示例代码

完整的示例代码:

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

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

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

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

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

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60065f8f238a385564ab6f21


猜你喜欢

  • npm 包 ti.growingform 使用教程

    在前端开发中,我们经常需要对表单进行操作,ti.growingform 是一个基于 Vue 的表单生成工具,它提供了一系列的组件,使得我们可以快速地构建出高质量的表单页面。

    3 年前
  • npm 包 @jimpick/w3c-keyname 使用教程

    前言 在前端开发过程中,我们经常会涉及到使用键盘快捷键或者监听按键事件。使用event.key来获取按键名是相对困难的,因为它返回的只是按键的 Unicode 值。

    3 年前
  • NPM包React Native Multi Switch使用教程

    React Native Multi Switch是一个npm包,可以帮助开发人员轻松创建可定制的React Native多重开关。本文将介绍如何使用React Native Multi Switch...

    3 年前
  • npm 包 @spiregg/styleguide 使用教程

    在现代化的 Web 开发中,使用标准的样式维护方式来保持项目一致性变得越来越重要。 一个好的样式指南库(styleguide)可以通过提供一致性的编写规范、颜色、字体和交互等方面的帮助来加速项目的构建...

    3 年前
  • npm 包 ci-run-staged 使用教程

    简介 在开发的过程中,我们需要进行代码检查、格式化、测试等操作。ci-run-staged 是一款能够帮助我们在 Git 提交的时候自动执行预定义的操作的工具,它能够自动运行通过 Git 暂存的代码,...

    3 年前
  • npm 包:ebabel-utils 使用教程

    在前端开发过程中,我们时常需要使用到 Babel 进行 JavaScript 代码转换。为了提高效率,我们可以使用 npm 包 ebabel-utils 来简化 Babel 的使用流程。

    3 年前
  • npm 包 ftrm-ctrl 使用教程

    在前端领域中,npm 包是非常常见的工具,它们可以让我们更轻松、高效地开发 Web 应用。其中,ftrm-ctrl 是一个非常实用的 npm 包,它可以帮助我们在 Web 应用中实现数据流控制。

    3 年前
  • npm 包 gendiff0th0n 使用教程

    前言 gendiff0th0n 是一个非常实用的 npm 包,可以帮助开发者快速进行文件比较,检测出差异,用于前端项目版本控制和代码维护等方面。 在本文中,我们将详细介绍 gendiff0th0n 的...

    3 年前
  • npm 包 json-version-control 使用教程

    在前端开发中,大多数项目多少会使用到 npm 包管理工具。而在实际项目开发中,npm 包的版本管理是很重要的一环。而为了方便进行版本管理,我们这里向大家介绍一款 npm 包:json-version-...

    3 年前
  • npm 包 uniq-string 使用教程

    前言 在前端开发中,我们经常需要生成一些唯一的字符串,比如用于订单号、用户 ID 等。这时候,我们可以通过一些代码手动实现唯一字符串的生成,但是这种方式不仅繁琐,而且容易出现重复。

    3 年前
  • npm 包 curo 使用教程

    前言 在前端开发中,我们经常需要进行 DOM 操作,以及对 DOM 元素的样式和属性进行一系列的操作。curo 是一个轻量级且易于使用的 JavaScript 库,用于将 DOM 操作简化为更易于管理...

    3 年前
  • npm 包 @jimpick/crel 使用教程

    在开发前端项目的时候,经常需要动态创建 DOM 元素,手动用 JavaScript 拼接 HTML 代码很麻烦,而使用 @jimpick/crel 包可以方便快捷地创建 DOM 元素。

    3 年前
  • npm 包 @jimpick/orderedmap 使用教程

    在前端开发中,数据的排序和搜索十分关键,而有序的 Map 可以在这方面提供很好的帮助。npm 包 @jimpick/orderedmap 则是一款高效的有序 Map 实现。

    3 年前
  • npm包@jimpick/rope-sequence使用教程

    前言 在 Web 开发中,前端的技术发展日新月异,各种方便快捷的工具层出不穷。其中 Node.js 极大地方便了我们的前端开发,尤其是 npm 包的出现,使得前端开发者可以轻松地引用别人写好的第三方工...

    3 年前
  • npm 包 @cleverbeagle/pupql 使用教程

    在前端开发中,我们经常需要处理后端返回的数据,并将其展示在页面上。而数据查询和分析则是有时必要的操作。本文将介绍一款 npm 包 @cleverbeagle/pupql,这是一款基于 MongoDB ...

    3 年前
  • npm 包 emoticons-converter 使用教程

    在现代的通讯方式中,表情符号已经成为了一种非常普遍的交流方式。为了更好的在前端应用中集成这些表情符号,许多开源社区整理出了一些非常优秀的npm包。本教程将介绍如何使用npm包 emoticons-co...

    3 年前
  • npm 包 sluger 使用教程

    在前端开发中,如何为网站的页面和 URL 命名是一个重要的问题。通常情况下,我们需要将文章、博客等内容的标题转换为 URL 友好的格式,以便于搜索引擎的抓取和用户的分享。

    3 年前
  • npm 包 @funjs/emitter 使用教程

    什么是 @funjs/emitter @funjs/emitter 是一个简单但功能强大的事件触发器,使用它可以很容易地在 JavaScript 应用程序中实现事件监听与响应。

    3 年前
  • npm 包 @ibberson92/reactforms 使用教程

    前言 在前端开发中,表单是必不可少的一部分,然而表单的开发并不是一件容易的事情。为了解决表单开发中的繁琐和麻烦,有许多现成的解决方案。其中,@ibberson92/reactforms 是一个非常实用...

    3 年前
  • npm 包 @turtle.js/core 使用教程

    介绍 @turtle.js/core 是一款基于 TypeScript 和 Canvas 开发的前端绘图库。该库提供了丰富的绘图函数和接口,可以用于实现各种复杂的图形需求。

    3 年前

相关推荐

    暂无文章