当前位置: 首页 > news >正文

Jwt工具类

导入依赖

<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version>
</dependency>
<dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId>
</dependency>

工具类

jwt:token:tokenExpiration: 120 #有效时间,单位分钟tokenSignKey: headline123456  #当前程序签名秘钥 自定义
@Data
@Component
@ConfigurationProperties(prefix = "jwt.token")
public class JwtUtil {private  long tokenExpiration; //有效时间,单位毫秒 1000毫秒 == 1秒private  String tokenSignKey;  //当前程序签名秘钥//生成token字符串public  String createToken(Long userId) {System.out.println("tokenExpiration = " + tokenExpiration);System.out.println("tokenSignKey = " + tokenSignKey);String token = Jwts.builder().setSubject("YYGH-USER").setExpiration(new Date(System.currentTimeMillis() + tokenExpiration*1000*60)) //单位分钟.claim("userId", userId).signWith(SignatureAlgorithm.HS512, tokenSignKey).compressWith(CompressionCodecs.GZIP).compact();return token;}//从token字符串获取useridpublic  Long getUserId(String token) {if(StringUtils.isEmpty(token)) return null;Jws<Claims> claimsJws = Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token);Claims claims = claimsJws.getBody();Integer userId = (Integer)claims.get("userId");return userId.longValue();}//判断token是否有效public  boolean isExpiration(String token){try {boolean isExpire = Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token).getBody().getExpiration().before(new Date());//没有过期,有效,返回falsereturn isExpire;}catch(Exception e) {//过期出现异常,返回truereturn true;}}
}
http://www.lryc.cn/news/153250.html

相关文章:

  • 计算机网络-笔记-第五章-运输层
  • java-参数传递机制
  • Python编程练习与解答 练习96:字符串是否表示整数
  • Scala的特质trait与java的interface接口的区别,以及Scala特质的自身类型和依赖注入
  • 检查js中的字符串是否可以成为回文
  • 时序预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络时间序列预测(风电功率预测)
  • WebSocket--技术文档--基本概念--《快速了解WebSocket协议》
  • flutter报错-cmdline-tools component is missing
  • torch.bmm功能解读
  • 如何使用Puppeteer进行金融数据抓取和预测
  • Linux下 Socket服务器和客户端文件互传
  • Nginx详解 第五部分:Ngnix反向代理(负载均衡 动静分离 缓存 透传 )
  • 中国行政区域带坐标经纬度sql文件及地点获取经纬度方法
  • [国产MCU]-W801开发实例-WiFi网络扫描
  • SpringBoot使用kafka事务-消费者方
  • C# 实现PictureBox从指定的文件夹内进行翻页操作
  • Eureka 注册中心的使用
  • vue3 组件通信方式
  • 淘宝商品API使用示例:如何通过调用外部API来获取淘宝商品价格销量主图详情数据
  • RK3568-android11-适配ov13850摄像头
  • 基于Sider-chatgpt3.5-编写一个使用springboot2.5连接elasticsearch7的demo程序,包括基本的功能,用模板方法
  • nodejs中如何使用Redis
  • golang append坑
  • PaddleNLP使用Vicuna
  • jackson常用操作
  • ios ipa包上传需要什么工具
  • 科目1基础知识快速入门精简
  • 安卓逆向 - 某东app加密参数还原
  • Visual Studio(2022)生成链接过程的.map映射文件以及.map映射文件的内容说明
  • A. Gift Carpet