JWT令牌解析及刷新令牌(十一)

news2024/11/28 8:28:44

写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!如果我的博客对你有帮助,欢迎进行评论✏️✏️、点赞👍👍、收藏⭐️⭐️,满足一下我的虚荣心💖🙏🙏🙏 。

上一篇记录了使用jwt令牌和自定义token携带的信息,本篇继续完善一下令牌的解析和使用refresh_token获取令牌,本篇代码基于上一篇:使用Spring Security OAuth2使用JWT生成token及自定义token携带的信息(十)

目录

Java解析JWT内容

pom依赖

测试类

Postman测试

刷新令牌

环境 

Postman测试


Java解析JWT内容

这里我们使用jjwt的工具包解析JWT的内容。

pom依赖

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

测试类

@GetMapping(value = "/jwt")
public Object jwt(HttpServletRequest request) {
    String authorization = request.getHeader("Authorization");
    return Jwts.parser()
            .setSigningKey("abc123".getBytes(StandardCharsets.UTF_8))
            .parseClaimsJws(authorization)
            .getBody();
}

Postman测试

启动我们之前的认证服务和测试服务。

首先,获取token,如下:

localhost:9005/oauth/token?client_id=dev-client&client_secret=123456&grant_type=password&username=zhangsan&password=123456

结果如下:

然后,我们访问JWT解析测试方法 http://localhost:9000/jwt,如下:

结果如下:

如上,已经JWT的内容已经解析出来了。

刷新令牌

下面演示一下token失效时使用refresh_toekn重新获取token的过程。

环境 

我们的客户端信息是保存在数据库的,要想支持刷新令牌,注意oauth_client_details表中authorized_grant_types要包含refresh_token,另外,之前令牌的有效期和刷新令牌的有效期是配置在令牌服务中的,如下:

tokenServices.setAccessTokenValiditySeconds(60);
tokenServices.setRefreshTokenValiditySeconds(3600);

这里咱们配置在数据库oauth_client_details表中,后续客户端信息会做一个管理功能来维护这些信息,为了演示,这里还将令牌有效期设置为30秒,刷新令牌的有效期设置为3600秒,如下:

Postman测试

使用上面的token再次访问  访问JWT解析测试方法 http://localhost:9000/jwt,结果如下:

后台报错信息如下:

 io.jsonwebtoken.ExpiredJwtException: JWT expired at 2023-03-09T09:56:55Z. Current time: 2023-03-09T10:08:47Z, a difference of 712101 milliseconds.  Allowed clock skew: 0 milliseconds.

如上,JWT expired,使用refresh_token重新获取token,如下:

 

 结果如下:

 使用新获取的access_token再次访问 JWT解析测试方法 http://localhost:9000/jwt,就可以在再次访问了。

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

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

相关文章

mmdetection3d-之(三)--FCOS3d训练waymo数据集

本内容分为两部分 1. waymo数据集转KITTI格式2. FCOS3D训练KITTI格式的waymo数据集1 waymo数据集转kitti格式 1.1 waymo数据集简介 1.1.1 waymo数据集下载 waymo数据集v1.2.0可以从这里下载。其中&#xff0c;train&#xff08;32个压缩包&#xff09;&#xff0c;test&…

零入门kubernetes网络实战-22->基于tun设备实现在用户空间可以ping通外部节点(golang版本)

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 本篇文章主要是想做一个测试&#xff1a; 实现的目的是 希望在宿主机-1上&#xff0c;在用户空间里使用ping命令发起ping请求&#xff0c;产生的icmp类型的…

从FVM上线前的测试网统计报告中看前景,Filecoin将会迎来什么变化?

FEVM将在2023/03/14主网上线&#xff01;在Calibration网络升级正式完成后&#xff0c;Filecoin V18 Hygge升级将于2023年3月14日&#xff08;π日&#xff09;正式上线&#xff01;此次升级将正式为Filecoin网络带来智能合约。基于FVM的可编程性。此次更新升级将释放数据经济的…

Spring Cloud Alibaba Sentinel 集群流量控制

为什么要进行集群流控 假设集群中有 10 台机器&#xff0c;我们给每台机器设置单机限流阈值为 10 QPS&#xff0c;理想情况下整个集群的限流阈值就为 100 QPS。不过实际情况下流量到每台机器可能会不均匀&#xff0c;会导致总量没有到的情况下某些机器就开始限流。因此仅靠单机…

因特网基础

1、因特网的概述 1-1、网络、互联网和因特网 网络&#xff08;Network&#xff09;是由若干节点&#xff08;Node&#xff09;和连接这些节点的链路&#xff08;Link&#xff09;组成。 多个网络还可以通过路由器相互连起来&#xff0c;这样就构成了一个覆盖范围更大的网络&…

【刷题笔记】--双指针--189. 轮转数组

题目&#xff1a; 思路1&#xff1a; 再设一个数组&#xff0c;通过下标的规律&#xff0c;进行更新数组。 关于这个平移的下标规律&#xff1a;%numbersize&#xff1b; 假设数组1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&#xff0c;7 要整体…

MTK平台 Wireless Authentication Denied问题

这个问题一开始的现象是部分station无法连接某台AP。无线抓包后发现station和AP间进行了频繁的Auth认证,即station发送Auth包,ap回复Auth包出现 Expert: Wireless Authentication Denied (13: Requested authentication algorithm not supported)这样错误提示…

Lesson 9.2 随机森林回归器的参数

文章目录一、弱分类器的结构1. 分枝标准与特征重要性2. 调节树结构来控制过拟合二、弱分类器的数量三、弱分类器训练的数据1. 样本的随机抽样2. 特征的随机抽样3. 随机抽样的模式四、弱分类器的其他参数在开始学习之前&#xff0c;先导入我们需要的库。 import numpy as np im…

【项目精选】俄罗斯方块项目(视频+论文+源码)

点击下载源码 俄罗斯方块项目&#xff0c;基本功能包括&#xff1a;游戏主界面显示模块、方块及数据显示模块、方块移动控制模块、游戏界面颜色控制模块、游戏进度、等级控制模块等。本项目结构如下&#xff1a; &#xff08;1&#xff09;游戏主界面显示模块&#xff1a; 显示…

【密码学篇】密码行业标准汇总(GM)

【密码学篇】密码行业标准汇总&#xff08;GM&#xff09; 截止到2023年03月10日&#xff0c;共130个密码行业标准&#xff0c;适用商用密码应用与安全性评估等密码行业&#xff0c;可点击链接预览或下载标准—【蘇小沐】 文章目录【密码学篇】密码行业标准汇总&#xff08;GM…

【洛谷 P1044】[NOIP2003 普及组] 栈 题解(递归+记忆化搜索)

[NOIP2003 普及组] 栈 题目背景 栈是计算机中经典的数据结构&#xff0c;简单的说&#xff0c;栈就是限制在一端进行插入删除操作的线性表。 栈有两种最重要的操作&#xff0c;即 pop&#xff08;从栈顶弹出一个元素&#xff09;和 push&#xff08;将一个元素进栈&#xff…

常见数量关系分析

考点一相遇追及问题&#xff08;一&#xff09;直线型1. 单次相遇&#xff1a;相距两地&#xff0c;同时出发&#xff0c;相向而行。2. 单次追及&#xff1a;同时出发&#xff0c;同向而行。3. 直线型相遇追及问题公式总结&#xff08;二&#xff09;环线型环线型相遇追及问题公…

弹性存储-块存储和文件存储部分

存储通用知识 存储架构发展历程&#xff1a;直连存储-》存储网络-〉分布式存储/云存储 块存储、文件存储及对象存储使用场景 块存储、文件存储及对象存储性能对比 块存储及文件存储-块存储介绍 块存储EBS&#xff08;Elastic Block Storage&#xff09;是为了云服务器提…

CleanMyMac4.20新版本核心功能介绍

CleanMyMac4.20是Mac清理工具&#xff0c;具有很多功能。如‬删除大量不可见的缓存文件&#xff0c;可以批量删除未使用的DMG、不完整的下载以及其余的旧包。 与 CleanMyMac 3相比&#xff0c;新版本 UI设计焕然一新&#xff0c;采用了完全不同的风格。 CleanMyMac X4.20全新版…

在ubuntu上搭建SSH和FTP和NFS和TFTP

一、SSH服务搭建使用如下命令安装 SSH 服务&#xff1b;ssh 的配置文件为/etc/ssh/sshd_config&#xff0c;使用默认配置即可。sudo apt-get install openssh-server开启 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu&#xff0c;比如使用 Mobaxterm。二、FT…

六零导航页(LyLme Spage)导航网站源码

六零导航页 (LyLme Spage)前端基于D.Young的 5IUX搜索 &#xff0c;后台使用笔下光年的Light Year Admin模板开发&#xff0c;包含多种搜索引擎&#xff0c;致力于简洁高效无广告的上网导航和搜索入口&#xff0c;沉淀最具价值链接&#xff0c;全站无商业推广&#xff0c;简约而…

滤波算法 | 无迹卡尔曼滤波(UKF)算法及其Python实现

文章目录简介UKF滤波1. 概述和流程2. Python代码第一个版本a. KF滤波b. UKF滤波第一个版本简介 上一篇文章&#xff0c;我们介绍了UKF滤波公式及其MATLAB代码。在做视觉测量的过程中&#xff0c;基于OpenCV的开发包比较多&#xff0c;因此我们将UKF的MATLAB代码转到python中&a…

运维视角:rabbitmq教程(四)工作模式

今天这篇文章&#xff0c;通过python代码来测试rabbitmq交换机以及队列的工作模式&#xff0c;以此更加透彻的理解它的工作方式 一、简单模式 1、测试代码 生产者代码&#xff1a; import pikauser_info pika.PlainCredentials(admin, admin) connection pika.BlockingCon…

ICG-Hydrazide,吲哚菁绿-酰肼,ICG-HZ结构式,溶于二氯甲烷等部分有机溶剂,

ICG-Hydrazide,吲哚菁绿-酰肼 中文名称&#xff1a;吲哚菁绿-酰肼 英文名称&#xff1a;ICG-Hydrazide 英文别名&#xff1a;ICG-HZ 性状&#xff1a;粉末或固体 溶剂&#xff1a;溶于二氯甲烷等部分有机溶剂 稳定性&#xff1a;-20℃密封保存、置阴凉干燥处、防潮 分子…

vue上实现左右关联滚动

先看效果&#xff1a; 代码&#xff1a; <template><div class"container"><!-- 左侧fixed导航区域 --><div class"left"><divv-for"item in leftList":key"item.id"class"left_item":class&…