npm 包 egg-multi-jwt 使用教程

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


猜你喜欢

  • npm 包 @adamelliotfields/log 使用教程

    前言 在前端开发过程中,日志是非常重要的一部分。通过记录日志,我们可以及时发现和排除问题,更好地维护和优化代码。然而,JavaScript 的控制台日志仅仅是一个起步,当我们的应用变得越来越复杂和多样...

    3 年前
  • npm 包 elements-beta 使用教程

    前言 npm 包是前端开源社区中最为流行的包管理工具之一,通过 npm,可以从互联网上下载并安装各种前端工具、框架、库等等资源,方便快捷地扩展自己的项目。 在这篇文章中,我们将介绍一个叫做 eleme...

    3 年前
  • npm 包 react-native-pushnotificationreact 使用教程

    前言 随着移动应用的普及,推送通知功能的需求越来越高。而在 React Native 开发中,如何使用 npm 包 react-native-pushnotificationreact 实现推送通知功...

    3 年前
  • npm 包 @neko3/complete-me-last 的使用教程

    简介 @neko3/complete-me-last 是一款前端的自动完成功能模块。它可帮助开发者在编写代码时快速完善函数、变量等常见的语言构造。 该模块采用 JavaScript 编写,使用简便,功...

    3 年前
  • npm包botbuilder-line使用教程

    在前端开发中,botbuilder-line是一种专门用于构建聊天机器人的npm包,它可以帮助开发者在不同的平台上构建自己的聊天机器人,支持多种功能和交互。 本文将介绍如何使用botbuilder-l...

    3 年前
  • npm 包 cordova-plugin-ionic-migrate-localstorage 使用教程

    随着移动应用的普及,Web App 也因其可跨平台、可维护等优点得到了越来越多的开发者的关注和使用。然而,Web App 中常用的本地存储方案 LocalStorage 与移动平台常用的存储方案 SQ...

    3 年前
  • npm 包 node-red-contrib-http-request-multipart 使用教程

    在前端开发中,经常会存在需要传输文件的场景。而传输文件一般都是通过 HTTP 协议进行的。在 Node.js 的生态圈中,有一个非常好用的 npm 包 node-red-contrib-http-re...

    3 年前
  • npm 包 react-n-depth-checker 使用教程

    在 React 应用开发中,我们经常需要检查组件的深度,也就是组件嵌套层数。这是由于过深的嵌套在渲染时可能导致性能问题,同时也会增加代码可读性难度。为了解决这个问题,我们可以使用 npm 包 reac...

    3 年前
  • npm 包 rivelajs 使用教程

    介绍 rivelajs 是一个基于 React 开发的组件库,提供了丰富的 UI 组件,支持样式自定义、多主题切换等功能。使用 rivelajs 可以极大地减少前端开发时间,提高开发效率,同时也能够提...

    3 年前
  • npm 包 ts-optional-class 使用教程

    前言 在我们的前端开发中,经常会涉及到对数据类型的检查和处理。在 JavaScript 中,一些常见的数据类型如数字、字符串、布尔值等都是基本数据类型,但还有一些类型我们需要自己实现,如可选类型(Op...

    3 年前
  • npm 包 avanti-bootstrap-sass 使用教程

    介绍 Avanti Bootstrap Sass 是一个使用 Sass 语法的 Bootstrap 扩展,它包含了 Bootstrap 的所有样式及组件,并且还添加了一些额外的功能,例如 Border...

    3 年前
  • npm 包 svg-slider 使用教程

    前言 在当今的 web 开发中,前端技术越来越受到重视。其中, SVG 技术作为一种矢量图形语言,在图形绘制方面拥有很大的优势。而能够在 SVG 中创建轮播图、滑块等互动控件的库也越来越多。

    3 年前
  • npm 包 gatsby-source-s3 使用教程

    简介 gatsby-source-s3 是一个 Gatsby 插件,用于将 Amazon S3 存储桶中的文件作为 GraphQL 节点添加到 Gatsby 数据层中。

    3 年前
  • npm 包 text-mask-rut-test 使用教程

    在前端开发中,我们经常需要对用户输入的数据进行校验和格式化。在智能表单和数据输入场景中,有一个非常常见的需求就是对 Chile(智利)国家的身份证号码进行格式化处理。

    3 年前
  • npm包@micro-os-plus/c-libs的使用教程

    介绍 @micro-os-plus/c-libs是一个专业的C语言程序库,它为您提供了许多强大的功能来构建和开发前端应用程序。它可以快速、简单地解决各种常规问题。它的使用非常方便,其中包括常用函数、常...

    3 年前
  • npm 包 @micro-os-plus/cpp-libs 使用教程

    在前端开发中,我们常常需要使用一些 C++ 语言的函数和库,比如数学计算库和图像处理库等。此时,可以使用 @micro-os-plus/cpp-libs 这个 npm 包。

    3 年前
  • npm 包 @uppy/fs-tail-stream 使用教程

    在前端开发中,经常需要通过上传文件来实现某些功能,例如上传图片、上传视频等。而在上传文件的过程中,有时候需要对文件进行处理,例如监测文件变化,进行格式转换等。而这些都需要借助于一些工具来实现。

    3 年前
  • npm 包 primo-explore-getit-to-link-resolver-studio 使用教程

    在前端开发中,我们经常需要使用一些第三方库来实现自己的功能需求,这时会用到 npm 包管理工具来安装和管理这些第三方库。本篇文章介绍一款名为 primo-explore-getit-to-link-r...

    3 年前
  • npm 包 vue-fullcalendar-hql 使用教程

    前言 Vue-fullcalendar-hql 是一个基于 Vue.js 的开源项目,它是为了让前端开发者可以方便的使用 FullCalendar.js 进行全日历的开发而编写的。

    3 年前
  • npm 包 react-scrollback 使用教程

    前言 在前端开发中,我们经常需要实现页面滚动到顶部的功能。一种简单易用的实现方式就是使用 react-scrollback 这个 npm 包。本文将详细介绍该包的使用方法,帮助大家学习使用该包,实现滚...

    3 年前

相关推荐

    暂无文章