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

工具类:JWT

工具类:JWT

  • 依赖
  • JwtUtil.java

依赖

    <!--     创建、解析 和 验证JSON Web Tokens (JWT)--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency>

JwtUtil.java

package com.nnutc.common.utils;import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;import java.util.Date;
import java.util.HashMap;
import java.util.Map;public class JwtUtil {private static final String SECRET_KEY = "1ost"; // 替换为你的密钥private static final long EXPIRATION_TIME = 3600000; // 1小时/*** 生成 JWT** @param subject 主题,可以是用户的唯一标识* @return 生成的 JWT*/public static String generateToken(String subject) {Map<String, Object> claims = new HashMap<>();JwtBuilder builder = Jwts.builder().setClaims(claims).setSubject(subject).setIssuedAt(new Date(System.currentTimeMillis())).setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME)).signWith(SignatureAlgorithm.HS512, SECRET_KEY);return builder.compact();}/*** 验证 JWT** @param token 要验证的 JWT* @return 是否有效*/public static boolean validateToken(String token) {try {Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token);return true;} catch (Exception e) {return false;}}/*** 从 JWT 中提取主题** @param token 要提取的 JWT* @return 主题*/public static String getSubjectFromToken(String token) {Claims claims = Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token).getBody();return claims.getSubject();}
}
http://www.lryc.cn/news/450345.html

相关文章:

  • 王道-计网
  • 【机器学习(十)】时间序列案例之月销量预测分析—Holt-Winters算法—Sentosa_DSML社区版
  • Webpack优化问题
  • yjs10——pandas的基础操作
  • Squaretest单元测试辅助工具使用
  • MFU简介
  • 十分钟实现内网连接,配置frp
  • 解决MySQL命令行中出现乱码问题
  • TS系列(7):知识点汇总
  • Unity 查看Inspectors组件时严重掉帧
  • golang学习笔记23-面向对象(五):多态与断言【重要】
  • RabbitMQ基础知识
  • 基于Python大数据的音乐推荐及数据分析可视化系统
  • 安达发|太阳能设备行业APS计划排程软件能解决哪些问题
  • CaChe的基本原理
  • 数据结构-栈(理解版)
  • NAND Flash虚拟层初始化
  • zabbix7.0监控linux主机案例详解
  • 2024重生之回溯数据结构与算法系列学习(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
  • django drf 过滤器
  • 蓝桥杯—STM32G431RBT6(RTC时钟获取时间和日期)
  • DriveVLM 论文学习
  • Unity3D 客户端多开
  • 使用代理IP数据采集都需要注意那些?
  • 城市大脑:智慧城市的神经中枢——典型实践与经验启示
  • 嵌入式中CW32多功能测试笔实现
  • Python 时间占位符:毫秒的使用
  • 深度学习:(七)梯度下降法在神经网络中的应用
  • HarmonyOS---权限和http/Axios网络请求
  • 信号量SEM