2026/1/8 13:01:23
网站建设
项目流程
网站备案填写网站名称,自己做网站制作流程,网站空间续费多钱一年,dedecms 做的医院网站一、登录认证令牌就是一段字符串
承载业务数据, 减少后续请求查询数据库的次数
防篡改, 保证信息的合法性和有效性二、JWT简介三、使用JWTpom.xml引入起步依赖!--java jwt坐标--
dependencygroupIdcom.auth0/groupIdartifactIdjava-jw…一、登录认证令牌就是一段字符串承载业务数据, 减少后续请求查询数据库的次数防篡改, 保证信息的合法性和有效性二、JWT简介三、使用JWTpom.xml引入起步依赖!--java jwt坐标-- dependency groupIdcom.auth0/groupId artifactIdjava-jwt/artifactId version4.4.0/version /dependency编写工具类JwtUtilutils/JwtUtil.javapackage com.devops.utils; import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; import java.util.Date; import java.util.Map; public class JwtUtil { private static final String KEY devops; //接收业务数据,生成token并返回 public static String genToken(MapString, Object claims) { return JWT.create() .withClaim(claims, claims) .withExpiresAt(new Date(System.currentTimeMillis() 1000 * 60 * 60 * 12)) .sign(Algorithm.HMAC256(KEY)); } //接收token,验证token,并返回业务数据 public static MapString, Object parseToken(String token) { return JWT.require(Algorithm.HMAC256(KEY)) .build() .verify(token) .getClaim(claims) .asMap(); } }单元测试类JwtTestpackage com.example.demo; import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.interfaces.Claim; import com.auth0.jwt.interfaces.DecodedJWT; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.util.Date; import java.util.HashMap; import java.util.Map; SpringBootTest public class JwtTest { // 生成加密后的token Test public void testGen() { MapString, Object claims new HashMap(); claims.put(id, 1); claims.put(username, 张三); // 生成jwt代码 String token JWT.create() .withClaim(user, claims) // 添加载荷 .withExpiresAt(new Date(System.currentTimeMillis() 1000 * 60 * 60 * 12)) // 设置过期时间 .sign(Algorithm.HMAC256(yange)); // 指定算法生成密钥 System.out.println(token); } // 验证加密后的token Test public void testVerify() { String token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoxLCJ1c2VybmFtZSI6IuW8oOS4iSJ9LCJleHAiOjE3NjczMTg5ODV9.jRY2E19_CC3qKkZl5poHaHInC7CVLf9bc36geEU2S04; try { DecodedJWT decodedJWT JWT.require(Algorithm.HMAC256(yange)) .build() .verify(token); MapString, Claim claims decodedJWT.getClaims(); System.out.println(claims.get(user)); } catch (Exception e) { System.out.println(验证失败); } } }在项目中可以这样使用//使用JwtUtil工具类生成token MapString, Object claims new HashMap(); claims.put(id, user.getId()); claims.put(username, username); String token JwtUtil.genToken(claims); return Result.success(token);最终的结果