主页 > 创业  > 

SpringBoot生成与解析Jwt


Spring Boot 生成与解析Jwt

Maven依赖

<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency> 生成&解析 package yang; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import java.util.Date; import java.util.HashMap; import java.util.Map; @Slf4j public class TestMain { @Test public void run() { Map<String, Object> claims = new HashMap<>(); claims.put("id", 1); claims.put("username", "宇阳"); // 创建Jwt String jwt = Jwts.builder() .setClaims(claims) // 载荷:自定义的数据 .signWith(SignatureAlgorithm.HS256, "yuyang") // 签名算法 .setExpiration(new Date(System.currentTimeMillis() + 24 * 3600 * 1000)) // 有效期:以当前的时间戳往后加一天 .compact(); // 转换为字符串 log.info("生成Jwt:{}", jwt); // 解析Jwt Claims data = Jwts.parser() .setSigningKey("yuyang") // 自定义解密的秘钥 .parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwiZXhwIjoxNzA4OTMwMjMwLCJ1c2VybmFtZSI6IuWuh-mYsyJ9.6Iqhflkx900okTibiyLuYjwCDSgLBgYJ0RWB4-jt2ME") // 指定需要解析的Token令牌 .getBody(); log.info("解析Jwt:{}", data); } } 工具类 package yang.utils; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import java.util.Date; import java.util.Map; public class JwtUtils { private static String signKey = "yuyang"; //签名密钥 private static Long expire = 43200000L; //有效时间:12小时 单位毫秒 // 生成Jwt public static String createJwt(Map<String, Object> claims){ String jwt = Jwts.builder() .addClaims(claims) .signWith(SignatureAlgorithm.HS256, signKey) .setExpiration(new Date(System.currentTimeMillis() + expire)) .compact(); return jwt; } // 解析Jwt public static Claims parseJWT(String jwt){ Claims claims = Jwts.parser() .setSigningKey(signKey) .parseClaimsJws(jwt) .getBody(); return claims; } }

使用工具类

public class TestMain { @Test public void run() { Map<String, Object> claims = new HashMap<>(); claims.put("id", 1); claims.put("username", "宇阳"); // 创建Jwt String jwt = JwtUtils.createJwt(claims); log.info("生成Jwt:{}", jwt); // 解析Jwt Claims data = JwtUtils.parseJWT(jwt); log.info("解析Jwt:{}", data); } }
标签:

SpringBoot生成与解析Jwt由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“SpringBoot生成与解析Jwt