新建maven项目
在pom.xml文件下添加依赖
<dependencies> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.6.0</version> </dependency> </dependencies>
package src.main.webapp.jwt.create; import io.jsonwebtoken.Claims; import io.jsonwebtoken.JwtBuilder; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import java.text.SimpleDateFormat; import java.util.Date; public class JwtUtil2 { public static String createJwt() { //为了方便测试,我们将过期时间设置为1分钟 long now = System.currentTimeMillis();//当前时间 long exp = now + 1000*60;//过期时间为1分钟 JwtBuilder builder = Jwts.builder() .setId("111") .setIssuedAt(new Date())//时间 .claim("roles","admin")//添加自定义的数据 .setSubject("小白") .signWith(SignatureAlgorithm.HS256, "itsss") .setExpiration(new Date(exp));//方法用于设置过期时间 System.out.println( builder.compact() ); return builder.compact(); } public static void pareJwt(String token){ token="eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxMTEiLCJpYXQiOjE1NjE3MjM5NzMsInJvbGVzIjoiYWRtaW4iLCJzdWIiOiLlsI_nmb0iLCJleHAiOjE1NjE3MjQwMzN9.eoY2vTrkUbLUaF5ia__CxdjQrbZBCUSNMBldgyMSjQM"; Claims claims = Jwts.parser().setSigningKey("itsss").parseClaimsJws(token).getBody(); System.out.println("id:"+claims.getId()); System.out.println("subject:"+claims.getSubject()); SimpleDateFormat sdf=new SimpleDateFormat("yyyy‐MM‐dd hh:mm:ss"); System.out.println("签发时间:"+sdf.format(claims.getIssuedAt())); System.out.println("过期时间:"+sdf.format(claims.getExpiration())); System.out.println("当前时间:"+sdf.format(new Date()) ); System.out.println("自定义数据:"+claims.get("roles") ); } public static void main(String[] args) { pareJwt(createJwt()); } }
运行效果: