npm 包 hapi-bells 使用教程

阅读时长 5 分钟读完

介绍

hapi-bells 是一个基于 Hapi 框架的插件,能够为你的 Hapi 服务器提供第三方登录、授权和用户信息的扩展。它基于 bell 和 hapi-auth-cookie 插件,支持诸如 Facebook、Twitter、Google 等第三方登录提供商,并提供了简洁的 API,可以让你轻松地实现用户登录、注销、授权等功能。

安装

要开始使用 hapi-bells,你需要先确保安装了 Node.js 和 Hapi 框架。然后,在项目的根目录下运行以下命令来安装 hapi-bells:

该命令将自动安装 bell 和 hapi-auth-cookie 两个必要的依赖。

配置

在 Hapi 服务器启动之前,需要先对 hapi-bells 进行配置。以下是一个简单的例子:

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

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

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

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

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

上述代码中,我们首先创建了一个 Hapi 服务器实例(代码未展示)。然后,我们调用 server.register 方法来注册 bell、hapi-auth-cookie 和 hapi-bells 这三个插件。

在 hapi-bells 的配置项 options 中,我们先指定了 cookie 基本的加密选项。在 providers 字段中,我们指定了第三方登录提供商 Facebook 的相关参数。其中,clientIdclientSecret 分别是从 Facebook 开发者中心获得的应用 ID 和应用 Secret,这两个参数是必须指定的。

最后,在 Hapi 服务器成功启动后,我们打印一条消息,以便在控制台中查看服务器已成功启动。

使用

当 hapi-bells 配置完成之后,我们便可以使用其提供的 API 来实现用户登录、注销、授权等相关功能。以下是一个例子:

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

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

上述代码片段中,我们在 Hapi 服务器的路由系统中通过 server.route 方法定义了一个 GET 请求路径 /auth/facebook。在配置信息中,我们指定了该路径需要使用 Facebook 登录认证策略(即 strategy: 'facebook')。同时,我们将模式设置为 mode: 'try',表示如果认证失败,不强制跳转到 Facebook 登录页面。最后,我们通过 handler 方法设定了该请求的处理函数。

在处理函数中,我们首先通过 request.auth.isAuthenticated 属性判断用户是否已经登录。如果已经登录,则将请求重定向到 /user 页面;否则,返回认证失败消息。

总结

hapi-bells 提供了一种基于 Hapi 框架的简单、高效的第三方登录扩展解决方案。通过本文的介绍,你已经可以开始使用 hapi-bells 实现用户登录、注销、授权等功能了。当然,它还有很多其他的特性和方法,建议你阅读官方文档以获取更多信息。

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

纠错
反馈