egg-jwt egg jwt 使用

2023-11-17

1,安装egg-jwt

npm install egg-jwt --save

2,配置

config/plugin.ts

import { EggPlugin } from 'egg';

const plugin: EggPlugin = {
  jwt: {
    enable: true,
    package: "egg-jwt"
  },
};

export default plugin;

config/config.default.ts 

config.jwt = {
  secret: "ylw"//自定义 token 的加密条件字符串
};

如果使用了ts,需要在根目录下的 typings/index.d.ts 文件里声明一个 any 类型,否则会类型错误: 

import 'egg';

declare module 'egg' {
    interface Application {
        jwt: any;
        mysql:any;
    }
}

3,使用

在controller中使用:

login.ts

const token = ctx.app.jwt.sign({
      ...ctx.request.body,
    }, this.app.config.jwt.secret, {
      expiresIn: '60m', // 时间根据自己定,具体可参考jsonwebtoken插件官方说明
    });

 调用接口应该会在控制台拿到token:

 4,中间件

中间件可以减少代码,方便使用

 middleware/jwt.ts

module.exports = options => {
  return async function jwt(ctx, next) {
    const token = ctx.request.header.authorization;
    let decode: any;
    if (token) {
      try {
        // 解码token
        decode = ctx.app.jwt.verify(token, options.secret);
        await next();
        console.log(decode);
      } catch (error) {
        ctx.status = 401;
        ctx.body = {
          message: error.message,
        };
        return;
      }
    } else {
      ctx.status = 401;
      ctx.body = {
        message: '没有token',
      };
      return;
    }
  };
};

5,鉴权 

在router中对要鉴权的路由进行注册:

const jwt = app.middleware.jwt(app.config.jwt);
  router.get('/', jwt, controller.home.index);

在要调用的接口header加入刚才输入获取的token:

{
Authorization:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjExMjMzMyIsInBhc3N3b3JkIjoiMTIzNDEyIiwiaWF0IjoxNTgwMzgwNjA3LCJleHAiOjE1ODAzODQyMDd9._qBIrfaiELVdxD6MmWFAXJXDM6WDP3DjAfqk-cpGjl4
}

 6,结果

如果调用接口不传:

正确填写token:

 

 将在控制台打印token存的内容

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

egg-jwt egg jwt 使用 的相关文章

  • 在 Tomcat 上部署 Java Web 项目,无需 WAR 或 EAR

    我有一个 Java Web 项目 Struts Spring 在我的本地主机上完美运行 我必须将其部署在我的网站上 但虚拟主机提供的 Tomcat Manager 界面显示 由于安全原因 它无法上传 WAR 文件 当联系技术支持时 我被告知
  • 解析 JWT 令牌有效负载数据以获取 android/java 中的特定值[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我刚刚了解 JWT 想知道如何解析有效负载数据以使用密钥从中获取特定值 以下 JWT 令牌中的示例 e
  • 使用 php ping 网站

    我想创建一个 php 脚本 它将 ping 一个域并列出响应时间以及请求的总大小 这将用于监控网站网络 我尝试过curl 这是我到目前为止的代码 function curlTest2 url clearstatcache return if
  • C# 构建一个 webservice 方法,它接受 POST 方法,如 HttpWebRequest 方法

    我需要一个接受 POST 方法的 Web 服务 访问我的服务器正在使用 POST 方法 它向我发送了一个 xml 我应该用一些 xml 进行响应 另一方面 当我访问他时 我已经使用 HttpWebRequest 类进行了管理 并且工作正常
  • Django REST JWT 刷新

    使用 JWT 实施 Django REST 和身份验证 对于 JWT 令牌 我们必须在过期之前刷新它 过期后 JWT 将不会提供新的令牌 对于我的移动设备 我需要每 10 分钟刷新一次令牌 JWT EXPIRATION DELTA 如果用户
  • 如何从秘密字符串中制作 HMAC_SHA256 密钥以在 jose4j 中与 JWT 一起使用?

    我想生成 JWT 并使用 HMAC SHA256 对其进行签名 对于该任务我必须使用jose4j https bitbucket org b c jose4j wiki Home 我尝试根据秘密生成密钥 SecretKeySpec key
  • ClientAuthError:令牌续订操作由于超时而失败 MSAL Angular

    我是 MSAL 新人 所以我只遵循从这里实现它的基本设置https github com AzureAD microsoft authentication library for js blob dev lib msal angular R
  • 解码 JavaScript Web 令牌 (JWT) 的到期日期?

    我无法理解应用程序中嵌入的 JWT 的到期日期格式 例如 1473912000 这翻译成什么 1473912000 毫秒 某个 x 日期 任何帮助将不胜感激 正如詹姆斯所指出的 该数字是自 1970 年 1 月 1 日以来的秒数 这被转换成
  • 使用 JWT 创建 Firebase 自定义身份验证令牌

    为了创建 firebase 自定义身份验证令牌 我使用第三方 JWT 库 https github com jwtk jjwt https github com jwtk jjwt 在此库中 有一个选项可以添加 firebase 自定义令牌
  • Azure Web 角色中的网站项目

    我正在研究一个新的 ASP Net 项目 我们希望将其托管在 Windows Azure Web 角色中 该项目的技术要求之一是利用 ASP Net 的完整预编译选项 不可更新 单页程序集 Web Site项目模型 与 ASP Net 相反
  • 如何计算 OpenID Connect 服务器的指纹?

    创建 OpenID Connect 提供商 例如 AWS 时 我需要指定一个指纹对于连接器 它是什么 我如何获得它 例如 从如何在不使用密钥的情况下将 GitHub 操作与 AWS 部署连接起来 https stackoverflow co
  • 将您的应用程序链接到现有页面

    我搜索了又搜索 似乎找不到任何与此相关的信息 我们有一个 Facebook 页面 facebook com companyname 我们在 Facebook 上也有一个应用程序 apps facebook com companyname 我
  • 如何用 C 语言通过 HTTP 协议发送图像?

    我是一名正在做网络服务器练习的学生 我需要一些帮助 我的网络服务器在文本页面上运行良好 但是每当浏览器发送一个 GET img jpg HTTP 1 1请求 我不知道如何处理 我听说 HTTP 协议是基于文本的 那么如何在 HTTP 响应中
  • 我想将我的 NEXT.js 项目链接到静态网站

    我有一个使用 HTML CSS 开发的网站 它是一个静态网站 但现在我使用 NEXT js 与 Strapi API 集成创建了一个博客项目 我的问题是如何将我的静态网站与我的 Next js 项目链接起来 我尝试使用链接标签 但没有用 i
  • 缩小 HTML、CSS 和 Javascript 是一个坏主意吗?

    维基百科定义缩小 http en wikipedia org wiki Minification 28programming 29 as 从源代码中删除所有不必要的字符而不改变其功能的过程 这些不必要的字符通常包括空格字符 换行符 注释 有
  • 如何从Web JavaScript应用程序获取桌面C#程序中的变量

    我遇到一个问题 有两个应用程序 一种是 C 中的桌面应用程序 另一种是 javascript 中的 Web 应用程序 运行桌面应用程序中的一些变量或信息需要传输到Web应用程序 有谁知道如何解决这个问题 有人愿意提供更多细节来解决这个问题吗
  • Identity Server 4:添加访问令牌的声明

    我正在使用 Identity Server 4 和隐式流 并且想要向访问令牌添加一些声明 新的声明或属性是 tenantId 和 langId 我已将 langId 添加为我的范围之一 如下所示 然后通过身份服务器请求 但我也获得了tena
  • Bootstrap - 为反向行模式创建移动自适应

    我想用 Bootstrap 创建一个反向效果 第一行 左边是文字 右边是图像 第二行 左边是图片 右边是文字 第三行 左边是文字 右边是图片 第四行 左边是图片 右边是文字 而且这种情况一直持续下去 它在大型设备上看起来非常漂亮 但当它在设
  • 如何在 Java 中验证从 Azure AD B2C 生成的 JWT 令牌?

    我正在寻找 Java 代码示例来验证 Azure AD B2C 令牌 我们可以使用哪些依赖项 所有 JWT 令牌的 JWT 令牌验证步骤或代码是否相同还是会有所不同 我们的项目中没有使用 Spring Security 有大量的图书馆her
  • 向下滚动时如何使图像移动?

    这是我想要实现的目标的示例 https www flambette com en https www flambette com en 我尝试过更改图像的 css 属性 但效果不能满足我的需求 我尝试过以下代码 mydocument on

随机推荐

  • Docker+Jenkins+Golang 持续集成交付实战

    最近因公司发展需要 增加了一些go语言开发 对项目要求使用jenkins go docker自动部署上线 一 安装jenkins 1 安装Jenkins 详情见centos使用docker搭建jenkins jenkins使用方法见jenk
  • 使用face_recognition(一)人脸识别

    关于使用face recognition 安装方面还是有些坑的 之前用的是python3 5 pip安装出错 需要dlib什么的 按照网上的教程弄 还是有问题 搞了一天搞不定 后来看到说用python3 6比较简单 就换了个版本 结果pip
  • Ubuntu 14.04升级openssh7.7p1

    安装流媒体kurento 指定操作系统是Ubuntu 14 04 用户最近安全漏洞扫描 Ubuntu主机的ssh版本太低 OpenSSH 6 6 1p1 需要需要对该主机的SSH版本进行升级 准备升级的安全包 本次升级我准备了三个文件 op
  • 【学术探讨】万能密码原理剖析

    作者主页 士别三日wyx 作者简介 CSDN top100 阿里云博客专家 华为云享专家 网络安全领域优质创作者 推荐专栏 对网络安全感兴趣的小伙伴可以关注专栏 网络安全入门到精通 万能密码 顾名思义 就是可以 登录任意网站 的账号和密码
  • ORA-28040: 没有匹配的验证协议 问题解决

    出现这类问题 是因为 jar包不匹配造成 更换ojdbc jar包可以解决 下载ojdbc7 jar 用以前的jar包会出问题 以前的jar包会出现ora 28040 没有匹配的验证协议 项目使用的 ojdbc14报错 更换oidbc6解决
  • linux环境文件或者文件夹打包

    1 linux zip压缩 压缩当前文件夹下所有文件 压缩为a zip 命令行的方法是怎样 常用格式 zip r fileName zip 文件夹名 1 把 home目录下面的data目录压缩为data zip zip r data zip
  • java for循环删除元素_JAVA中循环删除list中元素的方法总结

    JAVA中循环遍历list有三种方式for循环 增强for循环 也就是常说的foreach循环 iterator遍历 1 for循环遍历list for int i 0 i if list get i equals del list rem
  • 第十二届蓝桥杯 ——左孩子右兄弟

    问题描述 对于一棵多叉树 我们可以通过 左孩子右兄弟 表示法 将其转化成一棵二叉树 如果我们认为每个结点的子结点是无序的 那么得到的二叉树可能不唯一 换句话说 每个结点可以选任意子结点作为左孩子 并按任意顺序连接右兄弟 给定一棵包含 N N
  • 腾讯广告算法大赛冠军、Kaggle Grandmaster倾力打造,涵盖Kaggle、阿里天池等赛题...

    随着互联网时代的到来 以及计算机硬件性能的提升 人工智能在近几年可以说是得到了爆发式的增长 互联网时代带来了大量的信息 这些信息是名副其实的大数据 另外 性能极佳的硬件也使得计算机的计算能力大大增强 这二者结合到一起 人工智能的蓬勃兴盛就变
  • MySQL数据库连接

    1 连接数据库 Class forName com mysql cj jdbc Driver 加载驱动 Connection conn DriverManager getConnection jdbc mysql localhost 330
  • 易云维®医院后勤管理系统软件利用物联网智能网关帮助实现医院设备实现智能化、信息化管理

    近年来 我国医院逐渐意识到医院设备信息化管理的重要性 逐步建立医院后勤管理系统软件 以提高信息化管理水平 该系统是利用数据库技术 为医院的中央空调 洁净空调 电梯 锅炉 医疗设备等建立电子档案 把设备监控 管控 维保 设置等主要管理操作都通
  • UHF超高频RFID应用RFID珠宝盘点管理

    关于UHF超高频RFID技术对RFID珠宝盘点管理的好处 在商场上逛 我们总会看到关于珠宝柜台展示的时候 无论多小的物品都会有一个个条码标签挂着 如果店员想对这些珠宝盘点 传统的做法是一个一个扫 如果实施RFID物联网技术 珠宝贴上RFID
  • qemu调试linux内核

    有了qemu后我们可以使用一台电脑就能模拟出多种cpu架构的单板 不需要去进行重复复杂的编译烧写调试工作了 提高开发的效率 一 主机环境 vmware或者hyper v安装ubuntu20 04 二 gdb安装 这里我们直接用gdb mul
  • vsftpd服务器上传文件,当我将文件上传到 Vsftpd 服务器时,文件被锁定

    我正在使用 FTP 的 spring 集成将文件上传到 FTP 服务器 Bean ServiceActivator inputChannel toFtpChannel public FtpMessageHandler handler Ftp
  • [ACM] 1016 Prime Ring Problem (深度优先搜索)

    Prime Ring Problem Problem Description A ring is compose of n circles as shown in diagram Put natural number 1 2 n into
  • Linux-3种方法快速找出监听特定端口的进程

    Pre 端口是代表通信端点的逻辑实体 并与操作系统中的给定进程或服务相关联 在之前的文章中 我们解释了如何找出 Linux 中所有开放端口的列表 以及如何使用 Netcat 命令检查远程端口是否可达 在这个简短的指南中 我们将展示在 Lin
  • TypeScript 中如何使用 getter 和 setter

    使用 get 和 set 关键字在 TypeScript 中定义 getter 和 setter getter 使我们能够将属性绑定到在访问属性时调用的函数 而 setter 将属性绑定到在尝试设置属性时调用的函数 class Develo
  • Qt助手(assistant):方便查找Qt类

    一个方便查找QT类用法的地方 QT自带的 QT助手 在qt安装路径中找到assistant exe 它就是QT助手 运行之后就可以查找QT中的类和函数了 找到后 将其发送到桌面快捷方式 更名为Qt助手
  • 关于pytorch图像处理模块的数据处理

    文章参考 chsasank github io from future import print function division import torch import torch nn as nn import torch optim
  • egg-jwt egg jwt 使用

    1 安装egg jwt npm install egg jwt save 2 配置 config plugin ts import EggPlugin from egg const plugin EggPlugin jwt enable t