npm 包 create-graphql-server-authorization 使用教程

阅读时长 6 分钟读完

前言

GraphQL 是一种用于 API 的查询语言,它使得客户端能够精确地描述它所需要的数据。GraphQL 已经成为了许多前端项目中的重要组成部分。但是,GraphQL 没有提供内置的身份验证和授权机制。因此,在创建 GraphQL API 时,我们需要考虑到这一问题。

create-graphql-server-authorization 是一个帮助您在 GraphQL 服务器中添加身份验证和授权机制的 npm 包。在这篇文章中,我们将探讨如何在您的项目中使用 create-graphql-server-authorization。

安装

要使用 create-graphql-server-authorization,您需要在项目中安装它。您可以使用以下命令行安装它:

安装成功后,您需要在您的代码中导入它:

使用 AuthorizationDirective

AuthorizationDirective 是一个 GraphQL 指令,它定义了身份验证和授权机制。您可以将它添加到您的类型定义中:

在上面的代码中,我们定义了一个名为 @auth 的指令,它在 OBJECT 和 FIELD_DEFINITION 上有效。它还定义了一个名为 requires 的参数,代表着用户需要的角色,默认为 ADMIN。

要使用此指令,您需要将其与您的 schema 中的类型一起使用。以下面的代码为例:

在上面的代码中,我们定义了一个查询 helloWorld,它需要 ADMIN 权限才可被使用。

现在,每当一个用户尝试访问特定的查询时,它将会被验证用户身份和使用的角色是否符合。

示例代码

以下是一个完整的示例代码,您可以在其中测试 AuthorizationDirective:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

结论

create-graphql-server-authorization 是一个非常好用的 npm 包,可以帮助您快速地为您的 GraphQL 服务器添加身份验证和授权机制。当您的项目需要进行认证和授权时,它是您的一个不错选择。我们希望这篇文章对您有所帮助。

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

纠错
反馈