如何在 Hapi 应用程序中使用 JWT 进行身份验证

阅读时长 5 分钟读完

在前端开发中,身份验证是非常重要的一环。JSON Web Token(JWT)已经成为了现代 Web 应用中最流行的身份验证机制之一,它可以在不同的平台和编程语言中使用。在 Hapi 应用程序中使用 JWT 进行身份验证需要设置和实现以下步骤。

安装 JWT

首先,我们需要安装需要用到的依赖。用下面的命令来安装 JWT:

实现身份验证

生成 JWT

在生成 JWT 前,我们需要首先设置密钥,然后根据我们实际需要将需要传递的信息付给 jwt.sign() 函数,如下所示:

  • jwt.sign() 函数的第一个参数是需要传递的数据信息,这里我们传递了 payload
  • jwt.sign() 函数的第二个参数是密钥,用于加密和解密 JWT。

验证 JWT

要验证 JWT,我们需要以下几步:

  1. 为请求头添加中间件。

在 Hapi 应用程序中,我们可以使用 hapi-auth-jwt2 模块来实现这个操作。我们首先安装这个模块:

然后我们在 server.js 文件中添加代码:

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

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

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

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

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

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

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

-------
  1. 编写身份验证逻辑。
-- -------------------- ---- -------
----- -------- - ----- --------- -------- -- -- -
  ----- ----------- - ----- ------------------------- -- -------
  -- -------------- -
    ------ - -------- ----- --
  -
  ------ - -------- ---- --
-

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

我们会将这个函数 validate() 提供给 jwt 验证中间件,并在这个函数中向数据库或者其他服务验证用户是否合法。如果用户合法,我们将 isValid 设置为 true,反之则为 false

  1. 在路由中使用验证。
-- -------------------- ---- -------
--------------
  ------- ------
  ----- ----
  -------- --------- -- -- -
    ------ ------ --------
  --
  ------- -
    ----- -
      --------- ------
      ------ --------- -------
    -
  -
---

我们设置了 hapi-auth-jwt2 中间件成功后,在路由配置中我们添加了 auth 对象。我们使用 strategyjwt 传递给了配置对象中,并传递了 scope,到 validate() 函数中进行逻辑检测。

总结

现在,我们已经成功地在 Hapi 应用程序中使用了 JWT 进行身份验证。JWT 的优点之一就是可以跨平台和语言使用,所以学会在 Hapi 中使用 JWT,可以让我们更好地与其他应用程序集成。整个的实现过程中,我们主要是从如下三个步骤中实现了我们的需求:

  1. 安装 JWT,并实现需要的函数。
  2. 在请求头添加中间件。
  3. 编写身份验证逻辑,并在路由中使用验证。

Hapi 是一个基于 Node.js 平台的面向对象的应用程序框架,具有轻量级、高效和可扩展性等特点。我们通过上述实例学到了如何在 Hapi 应用程序中使用 JWT 进行身份验证。

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

纠错
反馈