npm 包 graphql-rules 使用教程

简介

GraphQL-Rules是一个基于GraphQL的访问控制规则包,它允许您在GraphQL查询和突变中定义安全规则。这个包由AWS开发,旨在帮助开发人员通过定义规则以保护数据。

安装

您可以通过npm安装这个包,使用以下命令:

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

使用

GraphQL-Rules通过实现GraphQL的访问控制规则来保护您的数据。要使用GraphQL-Rules,您需要定义一些规则并将它们添加到您的GraphQL schema中。以下是一个简单的例子:

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

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

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

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

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

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

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

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

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

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

在上面的例子中,我们定义了一个查询“isProtected”,它被保护在一个规则中。这个规则检查context中的"user"是否等于"admin"。如果是,查询就被允许,否则就被拒绝。请注意,我们必须传递一个context,因为我们的规则需要访问它。

指南

GraphQL-Rules是一种非常强大的访问控制规则包,可以在GraphQL查询和突变中定义安全规则。它允许您通过控制访问来保护您的数据,从而使您的应用程序更加安全。以下是一些指南,帮助您更好地使用这个包:

定义规则

为了定义规则,您需要使用rule函数。这个函数接受一个谓词作为参数。这个谓词接受四个参数:parent、args、context和info。这些参数代表了查询或突变的不同部分。

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

在谓词函数中,您可以检查各种条件,以确定是否允许或拒绝查询或突变。

将规则添加到GraphQL schema中

当您定义了规则之后,您需要将它们添加到您的GraphQL schema中。要做到这一点,您需要使用shield函数。这个函数接受一个对象作为参数,该对象有与GraphQL schema中定义的查询和突变相同的属性名称。这些属性名称的值应该是rule函数的调用。

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

在上面的例子中,我们定义了两个受保护的查询和突变。这些都是受到一个规则的限制,该规则只允许管理员用户访问。

访问控制

当您定义和添加规则之后,GraphQL-Rules将自动检查用户对查询或突变的访问权限。如果用户没有足够的权限,查询或突变将被拒绝。您可以通过传递一个context来告诉GraphQL-Rules当前用户。这个context可以是任何对象,它包含当前用户的信息。

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

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

在上面的例子中,我们传递了一个包含当前用户信息的context。当规则在处理查询或突变时,它将访问这个context,以确定当前用户是否有足够的访问权限。

结论

GraphQL-Rules是一个非常强大的访问控制规则包。它使得在GraphQL查询和突变中定义安全规则变得容易。您可以使用它来控制访问,以确保只有有权访问数据的用户才能访问它。如果您正在构建一个使用GraphQL的应用程序,并需要一种强大的访问控制解决方案,您应该考虑使用GraphQL-Rules。

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


猜你喜欢

  • npm 包 font-proxima-nova-scss 使用教程

    在前端开发中,字体是非常重要的元素之一。然而,为了保证文档的一致性,我们通常需要使用统一的字体。Font Proxima Nova 是一款非常受欢迎的字体,而 font-proxima-nova-sc...

    3 年前
  • npm 包 node-identity-server 使用教程

    介绍 node-identity-server 是一个基于 Node.js 和 Express 的身份验证服务,它支持 OAuth2、OpenID Connect 等标准协议,并提供了用户管理、角色管...

    3 年前
  • npm 包 rc-dialog-wcast 使用教程

    前言 在前端的开发中,我们经常会需要用到弹窗组件。实现一个简单的弹窗并不难,但是要做到可定制化、易用性强,就需要依靠一些好用的组件库来实现。而 rc-dialog-wcast 就是一个高度可定制化的弹...

    3 年前
  • npm 包 react-rating-star 使用教程

    前言 React 作为一款流行的前端框架,其生态系统也非常丰富。其中,npm 包作为一种常见的功能扩展方式,对于提升前端开发效率和降低维护成本起到了重要作用。本文将介绍一款名为 react-ratin...

    3 年前
  • npm 包 ng2-file-input-bap 使用教程

    在前端开发中,文件上传功能经常被用到。而 Angular 框架中,ng2-file-input-bap 是一个优秀的文件上传组件。它提供了多种方式来配置,可以满足大部分的需求。

    3 年前
  • npm包vue-theme-loader使用教程

    概述 前端经常需要实现多种主题,通常的做法是使用CSS变量,但是这种方式不太友好,手动在CSS中定义所有变量很麻烦。vue-theme-loader可以解决这个问题,使用它可以让你更加方便地创建和切换...

    3 年前
  • npm 包 cerebral-provider-forms 使用教程

    在前端开发中,实现表单交互是必不可少的。而 cerebral-provider-forms 是一个支持表单状态管理的 npm 包,可以让表单操作更加方便、简洁。 本文将详细介绍 cerebral-pr...

    3 年前
  • npm 包 create-reducer-ts 使用教程

    什么是 create-reducer-ts create-reducer-ts 是一个基于 TypeScript 的轻量级 reducer 创造器,它可以帮助我们更加简单而高效的编写 reducer。

    3 年前
  • npm包temporary-rocketlets-ts-definition使用教程

    介绍 temporary-rocketlets-ts-definition是一个npm包,可以帮助前端开发人员轻松生成ts定义文件。在使用Typescript时,定义文件是必不可少的,它们描述了要导入...

    3 年前
  • npm 包 morphic-gui 使用教程

    在前端开发中,使用 npm 包能够大大提高我们的开发效率。本文将介绍一个名为 morphic-gui 的 npm 包的使用教程,希望对您有所帮助。 什么是 morphic-gui? morphic-g...

    3 年前
  • npm 包 redux-structures 使用教程

    前言 在前端开发中使用 redux 是常见的做法,Redux 提供了一种可预测的状态管理模式,适用于大型应用。同时,redux-structures 是一个 npm 包,可以帮助我们更加高效地使用 R...

    3 年前
  • ngx-logarithmic-slider: 使用教程

    前言 在前端开发中,滑动条控件是不可或缺的组件之一。它可以用来改变数值范围、调整音量、选择颜色等等。而 ngx-logarithmic-slider 正是一款功能强大,具备对数级别滑动效果的滑动条控件...

    3 年前
  • npm 包 ran-cli 使用教程

    前言 在前端开发中,我们编写的代码通常需要被打包和构建。为了提高开发效率和代码质量,我们常常会使用一些工具辅助我们完成这些任务。其中,npm 包 ran-cli 就是一个非常实用的工具。

    3 年前
  • npm包@cloudtea/ct-asr使用教程

    前言 语音识别技术正逐渐成为人工智能领域里的新宠。很多公司和开发者开始研究和使用语音识别技术。本篇文章将介绍一种轻便易用的语音识别工具——@cloudtea/ct-asr,它是基于Node.js的np...

    3 年前
  • NPM 包 klg-tracer-model 使用教程

    简介 klg-tracer-model 是一个基于 Node.js 的 NPM 包,它提供了一个易于使用的客户端架构,可让您进行分布式跟踪,以及了解您的应用程序中的所有服务之间的相互作用。

    3 年前
  • 使用 npm 包 hubot-belgiumrail 进行实时火车时刻查询

    前言 在前端开发中,我们经常使用 npm 来安装和管理依赖包。而在使用依赖包时,我们需要基于文档了解其使用方法和示例。本文将详细介绍一个 npm 包:hubot-belgiumrail,以及如何使用它...

    3 年前
  • npm包:vue-read-file使用教程

    概述 在前端开发中,文件操作是非常常见的一个场景。而 vue-read-file 是一款基于 Vue.js 的文件读取工具库,它能够帮助我们快速读取本地文件,并将内容转换为字符串、ArrayBuffe...

    3 年前
  • NPM包Drawbot使用教程

    Drawbot是一个前端绘图库,它可以让用户在网页上进行基础图形的绘制,例如圆形、矩形、线条等等。该库只需要一个Canvas元素即可完成多样化的绘制效果,适用于初学者和有经验的开发人员。

    3 年前
  • npm 包 ngx-devops 使用教程

    介绍 ngx-devops 是一个可用于 Angular 和 TypeScript 项目中的 npm 包,它的主要目的是在项目中轻松集成 devOps 流程。通过使用 ngx-devops,开发者可以...

    3 年前
  • npm 包 jsmp-infra-first-task 使用教程

    jsmp-infra-first-task 是一款实用的 npm 包,可以协助前端开发者进行开发和调试。本文将详细介绍如何安装及使用该包,以及常见问题解决方案。 安装 使用 npm 命令行工具,可以轻...

    3 年前

相关推荐

    暂无文章