工具类:JWT

ops/2024/10/18 14:14:32/

工具类:JWT

依赖

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

java_11">JwtUtil.java

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.ppmy.cn/ops/119163.html

相关文章

PHP 异步编程:从入门到精通

异步编程简介 异步编程是一种允许程序在等待某些操作&#xff08;如I/O操作或长时间运行的任务&#xff09;完成时继续执行其他任务的编程模式。这种方式可以显著提高应用程序的效率&#xff0c;尤其是在处理高延迟操作时。 PHP异步编程的实现 在PHP中&#xff0c;实现异步编…

Linux学习(一)

Linux学习(一&#xff09; 本地安装虚拟机 1.安装VMWare(点击图片跳转下载&#xff09; 2.安装CentOS7光盘源(点击图片下载&#xff09; 3.安装 一路点下一步 点击确认 等待不要动,可能有点久,直到这个界面,点击屏幕让鼠标进入虚拟机&#xff0c;选择简体中文 不要动&#…

大数据毕业设计选题推荐-网络电视剧收视率分析系统-Hive-Hadoop-Spark

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇…

【机器学习】目标分类算法概述

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 目标分类算法概述传统机器学习方法支持向量机(SVM)决策树和随机森林特征提取 基…

mysql学习教程,从入门到精通,SQL CROSS JOIN 语句(26)

1、SQL CROSS JOIN 语句 CROSS JOIN在 SQL 中用于将两个或多个表的每一行进行组合。这意味着如果表 A 有 M 行&#xff0c;表 B 有 N 行&#xff0c;那么CROSS JOIN 的结果将包含 M * N 行。这种连接不依赖于任何连接条件&#xff0c;因此它会生成笛卡尔积。 下面是一个简单的…

头歌实践教学平台 数据采集与处理技术 实训答案(二)

第三阶段 数据采集 练习1&#xff1a;urllib 爬虫 第1关&#xff1a;urllib基础 任务描述 本关任务&#xff1a;掌握 urlopen 函数的使用&#xff0c;完成一个简易的爬取程序。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;urlopen 函数。 urlopen函数 ur…

HarmonyOS Next系列之水波纹动画特效实现(十三)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现&#xff08;一&#xff09; HarmonyOS Next 系列之验证码输入组件实现&#xff08;二&#xff09; HarmonyOS Next 系列之底部标签栏TabBar实现&#xff08;三&#xff09; HarmonyOS Next 系列之HTTP请求封装和Token…

Python 时间占位符:毫秒的使用

Python 时间占位符&#xff1a;毫秒的使用 在 Python 中&#xff0c;处理时间和日期是一个非常常见的任务。在进行时间格式化时&#xff0c;使用占位符来表示特定的时间单位是非常重要的。特别是毫秒&#xff08;ms&#xff09;&#xff0c;它在许多应用中扮演着关键角色&…