NPM 包 egg-full-jwt 使用教程

阅读时长 9 分钟读完

什么是 egg-full-jwt?

egg-full-jwt 是一个基于 egg 的 JWT(Json Web Token)插件,它能够帮助我们在 egg 框架下有效地进行用户鉴权。这个插件支持黑名单、白名单等多种前端开发所需功能,让我们能够自定义 Token 处理,保持系统的灵活性和安全性。

如何使用 egg-full-jwt?

下面将介绍如何使用 egg-full-jwt 进行身份鉴别和保护您的 egg 应用。

1. 安装

你可以使用 NPM 来安装 egg-full-jwt:

2. 配置

在config/plugin.js 加上配置:

在 config/config.xx.js 下加上下面的配置:

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

该插件的功能介绍

在使用 JWT 进行用户鉴权时,我们需要跟踪用户的 JWT 信息。在 egg-full-jwt 这个插件中,除了用户鉴权的基本功能外,还为开发提供了额外的功能。

1. Token 验证

在 config.jwt.whiteList 和 config.jwt.unless 中配置白名单和黑名单,可以方便地对 token 进行验证,从而保证应用的安全性。如下所示:

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

白名单(whitelist):白名单的路由不需要 token 验证权限,只需要用户在登录后访问即可。

黑名单(blacklist):黑名单的路由需要 token 有效性验证,如果没有 token 或 token 已失效,无法访问。

####2. 刷新 Token

在实际开发中,Token 有效期到期后,需要刷新该 Token 方可继续使用。该插件提供了一个 refresh 接口,可以有效地解决 Token 过期问题。

####3. 中间件

在鉴权的领域中,MiddleWare 起到至关重要的作用。该插件支持中间件的方法,方便地集成了该鉴权机制。

4. 其他方法

该插件中还有其他方法,例如:sendResponse(),addUserTo BlackList(),getUserByToken() 等等,可以满足基本的鉴权需求。

示例代码

下面是一个简单的示例代码,用于说明如何使用 egg-full-jwt 进行身份鉴别和保护您的 egg 应用:

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

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

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

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

总结

本文介绍了如何使用 egg-full-jwt 进行身份鉴别和保护您的 egg 应用。我们还详细讲述了它的具体功能,包括 token 验证、刷新 token、中间件和其他方法的使用。它为开发者们提供了便捷和安全的开发模式,让我们在实际开发中更加容易地进行身份验证和鉴权,期待它对于前端从业者们能够有所帮助。

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

纠错
反馈