npm 包 redux-jwt 使用教程

阅读时长 5 分钟读完

简介

redux-jwt 是一个基于 Redux 的认证库,用于处理 JSON Web Token(JWT)的生成、验证和存储。它由 React Training 团队开发,非常适合在 React 应用中使用。

本文将介绍如何安装和使用 redux-jwt,包括其主要功能和核心 API,以及一些使用示例。

安装

redux-jwt 可以通过 npm 安装,使用以下命令:

核心 API

redux-jwt 主要有以下几个 API:

jwt(options)

该函数用于创建一个 Redux 中间件,它基于 JWT 实现了 HTTP 请求的认证。它接受一个 options 对象,可以设置以下属性:

  • secret: String,JWT 签名所需的秘钥,必须是一个字符串;
  • algorithm: String,使用的加密算法,默认为 HMAC SHA256;
  • header: String,JWT 头部信息;
  • cookie: String,JWT 存储在 cookie 中的名称;
  • extractor: Function,从请求中提取 JWT 的函数。

返回的中间件接受 store、next 和 action 三个参数,其中 action 可以是任何 Redux action。如果它具有 auth 字段,则中间件会尝试用存储的 JWT 对其进行身份验证。

其代码示例如下:

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

----- ----- - ------------
  ------------
  ----------------
    -----
      ------- ----------------
      ------- ------------
      ------- ----------------
      ---------- ----- -- --------------------- -- ----
    --
  -
--
展开代码

logout()

用于删除已存储的 JWT:

authenticate(data)

用于生成并存储 JWT:

decode(token)

用于对 JWT 进行解码,并返回其负载部分:

示例

下面是一个基于 redux-jwt 的简单登录系统示例:

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

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

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

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

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

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

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

-- -----
------------------------------- -------------
-----------------------------
展开代码

结论

redux-jwt 是一个非常实用的认证库,它可以简化 JWT 的生成、存储和验证,并配合 Redux 使用,使得创建 React 应用时的认证更加方便和高效。要学习和使用 redux-jwt,需要深入理解 JWT 的概念和使用方法,但学会之后,它会为你在 React 开发中带来很多便利。

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

纠错
反馈

纠错反馈