Spring Boot 生成与解析Jwt

spring-boot.jpg

Spring Boot 生成与解析Jwt

Maven依赖

<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version>
</dependency>

生成&解析

package yang;import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;import java.util.Date;
import java.util.HashMap;
import java.util.Map;@Slf4j
public class TestMain {@Testpublic void run() {Map<String, Object> claims = new HashMap<>();claims.put("id", 1);claims.put("username", "宇阳");// 创建JwtString jwt = Jwts.builder().setClaims(claims) // 载荷:自定义的数据.signWith(SignatureAlgorithm.HS256, "yuyang") // 签名算法.setExpiration(new Date(System.currentTimeMillis() + 24 * 3600 * 1000)) // 有效期:以当前的时间戳往后加一天.compact(); // 转换为字符串log.info("生成Jwt:{}", jwt);// 解析JwtClaims data = Jwts.parser().setSigningKey("yuyang") // 自定义解密的秘钥.parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwiZXhwIjoxNzA4OTMwMjMwLCJ1c2VybmFtZSI6IuWuh-mYsyJ9.6Iqhflkx900okTibiyLuYjwCDSgLBgYJ0RWB4-jt2ME") // 指定需要解析的Token令牌.getBody();log.info("解析Jwt:{}", data);}
}

工具类

package yang.utils;import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;import java.util.Date;
import java.util.Map;public class JwtUtils {private static String signKey = "yuyang"; //签名密钥private static Long expire = 43200000L; //有效时间:12小时 单位毫秒// 生成Jwtpublic static String createJwt(Map<String, Object> claims){String jwt = Jwts.builder().addClaims(claims).signWith(SignatureAlgorithm.HS256, signKey).setExpiration(new Date(System.currentTimeMillis() + expire)).compact();return jwt;}// 解析Jwtpublic static Claims parseJWT(String jwt){Claims claims = Jwts.parser().setSigningKey(signKey).parseClaimsJws(jwt).getBody();return claims;}
}

使用工具类

public class TestMain {@Testpublic void run() {Map<String, Object> claims = new HashMap<>();claims.put("id", 1);claims.put("username", "宇阳");// 创建JwtString jwt = JwtUtils.createJwt(claims);log.info("生成Jwt:{}", jwt);// 解析JwtClaims data = JwtUtils.parseJWT(jwt);log.info("解析Jwt:{}", data);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/729193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

收银系统源码-智慧新零售2.0小助手全新升级!

欢迎后台私信&#xff0c;测试体验&#xff01; 新零售助手是智慧新零售系统的移动管理端&#xff0c;尤其针对商户/门店日常经营必不可少的一环。智慧新零售2.0版小助手也进行了全新升级&#xff0c;使用起来更简单&#xff0c;页面更美观。小助手采用微信小程序登陆&#xf…

Git 掌握

目录 一、前言 二、centos安装Git 三、Git基本操作 (1) 创建Git本地仓库 (2) 配置Git (3) 认识工作区&#xff0c;暂存区&#xff0c;版本库 四、添加文件 五、查看.git文件 六、修改文件 七、版本回退 八、撤销修改 (1) 场景一 对于还没有add的代码 (2) 场景二 已…

基于springboot+vue实现民宿管理系统项目【项目源码+论文说明】计算机毕业设计

基于springbootvue实现民宿管理系统演示 摘要 伴随着我国旅游业的快速发展&#xff0c;民宿已成为最受欢迎的住宿方式之一。民宿借助互联网和移动设备的发展&#xff0c;展现出强大的生命力和市场潜力。民宿主要通过各种平台如携程、去哪儿、淘宝等在网络上销售线下住宿服务&a…

模块自动导入

看的短视频&#xff0c;自己试了下&#xff0c;发现挺好用的&#xff1a;模块自动导入【渡一教育】_哔哩哔哩_bilibili 1. 安装插件 npm i unplugin-auto-import 2. 在vite配置文件&#xff08;vite.config.ts&#xff09;中进行配置&#xff0c; 配置完场后&#xff0c;需要重…

ChatGPT原理与应用开发【文末送书-33】

文章目录 ChatGPT原理应用开发开发指南 ChatGPT原理与应用开发【文末送书-33】 ChatGPT ChatGPT 是一款由 OpenAI 开发的大型语言模型聊天机器人&#xff0c;它基于 GPT-3.5 和 ChatGPT 3.5 模型构建&#xff0c;并采用了大量的训练数据进行训练。ChatGPT 能够生成类似人类的文…

MySQL常见的索引类型介绍

我将为您详细讲解 MySQL 中常见的索引类型&#xff0c;以及它们的使用场景、特点、区别和优势。索引是提高数据库查询性能的关键工具&#xff0c;它可以加速数据检索速度&#xff0c;减少服务器的负担。在 MySQL 中&#xff0c;索引类型主要包括 B-Tree 索引、哈希索引、全文索…

从数据处理到3D PDF生成:交互式3D PDF生成引擎HOOPS Publish的工作原理

在当今数字化时代&#xff0c;3D技术在各个行业中扮演着重要角色&#xff0c;从制造业到医疗保健&#xff0c;再到建筑设计。为了更好地共享、演示和交互展示3D模型数据&#xff0c;HOOPS Publish作为一款强大的3D引擎&#xff0c;专门用于生成交互式的3D PDF文件。本文将深入探…

Linux平台下智能入侵检测系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 入侵检测与Snort概述 3 1.1入侵检测系统概念 3 1.2 Snort系统 3 1.3 Snort的特点 3 1.4 Snort规则 4 1.4.1 规则的结构 4 1.4.2 规则头部 5 1.4.3 规则选项 6 1.5 本章小结 6 2 需求分析与总体设计 7 2.1 必要功能需求分析 7 2.2 数据库的…

智能研发新纪元:探索2024年AI辅助研发的发展与趋势

随着人工智能&#xff08;AI&#xff09;技术的高速发展与创新&#xff0c;我们迎来了一个全新的时代&#xff0c;尤其是在研发领域。AI正以前所未有的速度和效率推动着科技的突破。2024年&#xff0c;AI辅助研发成为走在时代前端的核心竞争力。在这篇文章中&#xff0c;我们将…

FPGA AXI4总线信号介绍篇

一.AXI总线类型接口 AXI是一种总线协议&#xff0c;可以挂在多个master和slave&#xff1a; &#xff08;1&#xff09;AXI4&#xff1a;主要面向高性能地址映射通信的需求&#xff1b;&#xff08;突发数据&#xff09;&#xff08;地址映射模式&#xff09; &#x…

『python爬虫』requests实战-comicai绘画ai通过cookie签到(保姆级图文)

目录 实现效果实现思路登录查询积分数量签到 实现代码总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 实现效果 实现思路 登录 f12 打开控制台,进入网络清除所有信息后点击登录按钮 通过搜索login(通用写法)…

用云手机进行舆情监测有什么作用?

在信息爆炸的时代&#xff0c;舆情监测成为企业和政府决策的重要工具。通过结合云手机技术&#xff0c;舆情监测系统在品牌形象维护、市场竞争、产品研发、政府管理以及市场营销等方面发挥着关键作用&#xff0c;为用户提供更智能、高效的舆情解决方案。 1. 品牌形象维护与危机…

【动态规划基础与刷题】

注意 自行复制链接去进行刷题&#xff0c;因为平台的跳转功能太差。 https://www.acwing.com/problem/content/823/ https://www.acwing.com/solution/content/135651/ f1 普通的递归 #include <bits/stdc.h> // 2024-03-04 Come on ! using namespace std; #de…

F1-score模型评估

什么是F1-score F1-score 是一种用于衡量分类模型性能的指标&#xff0c;它综合了精确度&#xff08;Precision&#xff09;和召回率&#xff08;Recall&#xff09;两个指标。F1-score 的值在 0 和 1 之间&#xff0c;值越接近 1&#xff0c;表示模型的性能越好。在文本分类任…

Vue.js+SpringBoot开发农村物流配送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理&#xff1a;2.2.2 位置信息管理&#xff1a;2.2.3 配送人员分配&#xff1a;2.2.4 路线规划&#xff1a;2.2.5 个人中心&#xff1a;2.2.6 退换快递处理&#xff1a;…

用科技打造优质内容,柠檬微趣荣获“首都文明单位”称号

近日&#xff0c;北京召开了首都精神文明建设工作大会&#xff0c;会上宣读了首都精神文明建设先进评选结果。首都文明委决定授予951家单位“首都文明单位”称号。北京市公安局西城分局、中国印刷有限公司、北京柠檬微趣科技股份有限公司等61家西城区单位获此殊荣。 据了解&am…

测试一下 Anthropic 宣称超过 GPT-4 的 Claude 3 Opus

测试一下 Anthropic 宣称超过 GPT-4 的 Claude 3 Opus 0. 引言1. 测试 Claude 3 Opus 0. 引言 今天测试一下 Anthropic 发布的 Claude 3 Opus。 3月4日&#xff0c;Anthropic 宣布推出 Claude 3 型号系列&#xff0c;该系列在广泛的认知任务中树立了新的行业基准。该系列包括…

【GoEnhance AI】高质量视频转动画,无卡顿——登录和使用:详细指南!

GoEnhance 关于GoEnhance登录GoEnhance1. 从Web浏览器访问GoEnhance2. 点击“Log in”。3. 选择登录方式4. 登录成功 使用GoEnhance1. 视频转动画1.1 上传想要转换的视频1.2 设置参数1.3 点击“GENERATE”生成视频1.4 结果查看和视频下载 2. 进行图像增强和升级2.1 上传图片2.2…

『 Linux 』Process Control进程控制(万字)

文章目录 &#x1f996; 前言&#x1f996; fork()函数调用失败原因&#x1f996; 进程终止&#x1f4a5; 进程退出码&#x1f4a5; 进程正常退出 &#x1f996; 进程等待&#x1f4a5; 僵尸进程&#x1f4a5; 如何解决僵尸进程的内存泄漏问题&#x1f4a5; wait( )/waitpid( )…

1748页CTF竞赛入门指南,有点牛!

CTF是一种针对信息安全领域的经济性挑战&#xff0c;旨在通过解决一系列的难题来寻找隐藏的“flag”。CTF比赛战队一般是以高校、科研单位、企业、信息安全从业者或社会团体组成。对于网安爱好者及从业者来说&#xff0c;拥有“CTF参赛经验”也是求职中的加分项。 前几天分享的…