NPM包redux-api-token-middleware使用教程

阅读时长 5 分钟读完

当今Web开发中的前端技术变化日新月异,拥有统一且可持续的状态管理工具已经成为前端工程师的必备技能。为了使前端应用程序的管理更加可靠和可维护,Redux是一个非常流行的状态管理库。在处理现代Web应用的数据交换方面,Redux支持异步状态更新,其中API调用是其中一个重要的方面。本文将介绍如何使用redux-api-token-middleware npm包进行API调用,以及如何将JSON Web令牌添加到所有API请求中。

什么是Redux?

Redux是一个JavaScript state容器,它的作用是管理应用程序的状态。Redux有以下几个核心概念:

  • store:存储了整个应用程序的状态。这个状态对象只允许用一种方式更新:通过dispatching一个action对象来描述状态变化。
  • action:是一个包含type属性的普通对象,用于描述状态变化,它传递数据到store。
  • reducer:描述应用程序可以如何在action派生时更改其状态,使用store.dispatch()来调度它们。

Redux可以和React等库和框架一起使用,使得在复杂的应用程序中数据流变得更加可控和可预测。

什么是redux-api-token-middleware?

redux-api-token-middleware是一种Redux的中间件,它充当处理JSON Web令牌的组件,以便您可以更轻松地往API请求中添加令牌。请求API时,该中间件将从或存储在本地存储中的JWT中提取令牌,并将其放入“Authorization”头中,以确保API请求已获授权。

安装和使用redux-api-token-middleware

首先,我们需要安装redux-api-token-middleware npm包。使用 npm 命令:

一旦安装, 我们就可以在我们的 Redux store 里面使用它。

第一步是在store/index.js文件中初始化Redux。

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

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

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

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

在上面的代码中,我们首先导入所需的 createStore、applyMiddleware、rootReducer,并从redux-api-token-middleware包中导入createTokenMiddleware函数。这个函数是一个工厂函数,用于创建middleware实例。

然后,我们将 tokenMiddleware 添加到 applyMiddleware 函数中,最后使用 createStore 创建 Redux store。

接下来,定义好我们的API地址,以及接口请求成功、失败、请求发送loading等不同情况下,返回不同类型的 action 对象:

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

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

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

在上面的代码中,我们定义了三个类型: LOGIN_REQUEST, LOGIN_SUCCESSLOGIN_FAILURE。当 handleSubmit 方法触发 login action creator时,我们看到 types 属性存储了3个不同类型的action对象,每个对象都带有一个字符串 type 值。

options 对象包含url,请求方法以及所需的Data。我们将在发送 API 请求时对它们进行控制。

最后,我们将API请求与Middleware集成在一起,将我们的API请求配置为:

在上述代码中,我们在将login集成到redux中,并最终dispatch发起该请求。我们在调度 API 请求时不需要任何其他代码,只要它被定义为 Redux action creator。redux-api-token-middleware将确保该请求始终带有必要的Authorization头部。

总结

redux-api-token-middleware使得将JSON Web令牌添加到API请求变得非常的简单和方便。通过在store配置中添加它,可以轻松地进一步封装 API 调用,并确保所有请求都带有授权token。

在任何现代的Web应用中,Redux都是一种非常流行的状态管理库,可以交替使用其他的Web框架一起使用。在使用redux-api-token-middleware之前,我们需要具备基础的 Redux 基础知识。希望通过本文,您对Redux及redux-api-token-middleware有了更深入的理解。

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

纠错
反馈