npm 包 @hapi/basic 使用教程

阅读时长 6 分钟读完

简介

@hapi/basic 是 Hapi.js 框架提供的用于 HTTP 基本认证的插件,通过该插件可以轻松实现基于用户名和密码的用户认证功能,是前端开发中常用的工具。本篇文章将详细介绍如何使用该插件。

安装

安装 @hapi/basic 插件,可以通过 npm 命令进行安装:

使用

1. 注册插件

在 Hapi.js 框架中使用该插件,需要先将其注册:

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

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

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

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

-------

2. 实现策略

接下来,需要使用 Basic 插件提供的 basic 策略来完成用户认证的功能。

其中,simple 是策略名称,basic 是插件名称,validate 是认证函数,对请求进行验证。下面我们详细介绍如何实现 validate 函数。

3. 实现验证函数

实现 validate 函数,需要定义一个包含 validatecredentials 两个方法的对象。其中:

  • validate 方法用于验证用户名和密码是否正确,接受用户输入的用户名和密码;
  • credentials 方法用于从验证数据中解析出用户的信息,记录在请求的凭证中。

在上面的例子中,在 validate 方法中,使用了一个硬编码的用户对象 { name: 'test' } 进行用户名和密码的验证,当用户名和密码正确时,isValid 属性设置为 true

如果需要使用数据库验证用户,可以在 validate 方法中进行数据库查询,查询到用户信息后,将认证结果返回给 isValidcredentials 属性。

4. 应用策略

注册、实现策略、验证函数之后,需要将策略应用到路由上。

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

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

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

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

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

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

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

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

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

在上面的例子中,我们首先使用 server.route 方法定义了两个路由。其中 /private 路由需要进行认证,而 / 路由不需要认证。

接着我们调用了 server.auth.default 方法将 simple 策略应用到所有路由上。

如果请求 /private 路由时没有进行认证,将会返回 401 Unauthorized 状态码,并提示进行认证。如果认证成功,将会返回欢迎信息 Welcome test!

示例代码

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

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

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

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

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

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

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

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

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

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

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

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

-------

总结

@hapi/basic 是 Hapi.js 框架中实现 HTTP 基本认证的插件,可以轻松地实现基于用户名和密码的用户认证功能。本篇文章介绍了该插件的安装方法、使用方法以及应用示例。希望通过本文的介绍,读者能够掌握如何使用该插件进行用户认证,提高应用的安全性。

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

纠错
反馈