java WT -- JSON WEB TOKEN 加密/校验工具类
依赖项#
<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.7.0</version> </dependency>
JWTUtils.java#
package net.ybclass.online_ybclass.utils; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import net.ybclass.online_ybclass.domain.User; import java.util.Date; /** * JWT工具类 * 注意点: * 1、生成的token,是可以通过base64进行解密出铭文信息 * 2、base64进行解密出明文信息,修改再进行编码,则会解密失败 * 3、无法作废已颁布的token,除非改密钥 */ public class JWTUtils { /** * 过期时间,一周 */ static final long EXPIRE = 60000 * 60 * 24 * 7; /** * 加密密钥 */ private static final String SECRET = "ybclass.net168"; /** * 令牌前缀 */ private static final String TOKEN_PREFIX = "ybclass"; /** * 主题 */ private static final String SUBJECT = "ybclass"; /** * 根据用户信息,生成令牌 * * @param user * @return */ public static String geneJsonWebToken(User user) { String token = Jwts.builder().setSubject(SUBJECT) .claim("head_img", user.getHeadImg()) .claim("id", user.getId()) .claim("name", user.getName()) .setIssuedAt(new Date()) //令牌颁布时间 .setExpiration(new Date(System.currentTimeMillis() + EXPIRE)) //过期时间 .signWith(SignatureAlgorithm.HS256, SECRET) //加密方式 .compact(); token = TOKEN_PREFIX + token; return token; } /** * 校验token方法 * * @param token * @return */ public static Claims checkJWT(String token) { try { final Claims claims = Jwts.parser() .setSigningKey(SECRET) .parseClaimsJws(token.replace(TOKEN_PREFIX, "")) .getBody(); return claims; } catch (Exception e) { return null; } } }
分类:
JWT
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?