npm 包 api-umbrella-gatekeeper 使用教程

阅读时长 6 分钟读完

介绍

api-umbrella-gatekeeper 是一个 Node.js 的中间件,用于验证 API 的访问令牌和权限。它可以与 API Umbrella 集成,并提供了一个可扩展的插件和授权策略系统。使用此中间件,您可以轻松地构建一个安全的 API。

安装

首先,您需要使用 NPM 安装 api-umbrella-gatekeeper 包。

配置

在运行 api-umbrella-gatekeeper 之前,您需要创建一个配置文件。您可以根据您的需求,在配置文件中设置访问令牌、API 服务器地址和插件等参数。

以下是一个简单的配置文件示例:

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

使用

在您的应用程序中,您需要引入 api-umbrella-gatekeeper 中间件,并将其与您的 Express.js 实例进行关联。然后,您可以通过配置路由和 API 令牌来访问受保护的 API。

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

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

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

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

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

现在您可以通过向您的 API 发送 HTTP 请求来检查 api-umbrella-gatekeeper 是否为您的 API 请求验证了令牌和权限。例如:

插件和授权策略

api-umbrella-gatekeeper 通过插件和授权策略系统提供了可扩展性。您可以使用默认的插件和授权策略,也可以编写自己的定制插件和授权策略。

插件

api-umbrella-gatekeeper 插件用于扩展验证逻辑,例如实现其他授权策略、支持不同的 API 格式等。默认提供的插件有:

  • allowlist: 允许特定的 IP 地址访问 API。
  • denylist: 拒绝特定的 IP 地址访问 API。

您可以在配置文件中启用这些插件,也可以编写您自己的插件。以下是一个编写自定义插件的示例:

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

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

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

在上面的例子中,我们编写了一个插件 myCustomPlugin,它会检查请求头中的自定义键是否与配置的值匹配。如果是,则授权通过,否则禁止访问该 API。

授权策略

授权策略用于定义哪些用户可以访问 API。默认提供的授权策略有:

  • oauth2: 使用 OAuth2 令牌验证用户的身份。
  • key: 使用访问密钥验证用户的身份。

您可以在配置文件的 authorizeUrlaccessTokenUrl 中定义 OAuth2 的授权和获取令牌的地址。默认情况下,这些地址是 https://auth.example.com/authorizehttps://auth.example.com/token

以下是一个启用 OAuth2 授权策略的示例:

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

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

在上面的例子中,我们设置了 OAuth2 的授权和获取令牌的地址,以及我们的客户端 ID 和客户机密码。

结论

api-umbrella-gatekeeper 提供了一个灵活的、可扩展的中间件,用于验证 API 令牌和权限。它具有丰富的配置选项、可扩展的插件和授权策略系统,并集成了 API Umbrella 平台,使 API 的保护变得更加容易。

希望这篇文章能够帮助您理解 api-umbrella-gatekeeper 的基本用法和配置,以及如何编写自己的插件和授权策略。如果您有任何问题或建议,请随时在评论区留言。

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