npm 包 egg-multi-jwt 使用教程

阅读时长 5 分钟读完

egg-multi-jwt是一个基于JSON Web Token (JWT)egg.js插件,提供了多种JWT验证策略,支持多用户、多角色和多应用程序,让您的应用程序更加健壮和安全。

安装

在您的egg.js项目目录下,使用npm安装egg-multi-jwt

配置

在您的egg.js项目的config/plugin.js文件中添加插件:

config/config.default.js文件中添加egg-multi-jwt插件的配置信息:

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

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

配置项具体含义如下:

  • secret:用于签名和验证 JWT 的密码或密钥,必选项。
  • expiresIn:JWT 的过期时间,默认为7天,可选项。
  • ignoreUrls:无需验证 JWT 的路由数组,默认为空数组,可选项。
  • tokenName:存储 JWT Token 的 Cookie 名称,默认为access_token,可选项。
  • refreshUrl:处理 Token 刷新的路由,默认为/api/refresh_token,可选项。
  • getIdentity:获取用户信息的方法,该方法应该返回一个对象包含用户信息和角色信息。方法接受一个request参数,必选项。

使用

验证 JWT

使用ctx.multiJwt.verify方法验证 JWT:

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

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

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

获取用户信息

使用ctx.user方法获取当前用户的信息和角色信息:

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

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

刷新 Token

如果 JWT 已过期,可以使用ctx.multiJwt.refresh方法刷新 Token:

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

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

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

结语

egg-multi-jwt插件提供了多种JWT验证策略,让应用程序具有更高的安全性和可扩展性。使用此插件确保您的站点更加安全和健壮。

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

纠错
反馈