-
需要添加依赖项:
<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency>
-
关于生成JWT与解析JWT的示例代码:
public class JwtTests { String secretKey = "a9F8ujGFDhjgvfd3SA90ukEDS"; @Test public void generate() { Date date = new Date(System.currentTimeMillis() + 5 * 60 * 1000L); Map<String, Object> claims = new HashMap<>(); claims.put("id", 9527); claims.put("username", "liucangsong"); String jwt = Jwts.builder() // Header .setHeaderParam("alg", "HS256") .setHeaderParam("typ", "JWT") // Payload 载荷 .setClaims(claims) // Signature 签名 .setExpiration(date)//过期时间 .signWith(SignatureAlgorithm.HS256, secretKey) .compact(); System.out.println(jwt); // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6OTUyNywiZXhwIjoxNjY3ODc5ODAxLCJ1c2VybmFtZSI6ImxpdWNhbmdzb25nIn0.fjPvR0ibgNKoTp6U-1fCOcMoAVMRkAQ1yr4C2fvf6YQ } @Test public void parse() { String jwt = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6OTUyNywiZXhwIjoxNjY3ODc5ODAxLCJ1c2VybmFtZSI6ImxpdWNhbmdzb25nIn0.fjPvR0ibgNKoTp6U-1fCOcMoAVMRkAQ1yr4C2fvf6YQ"; Claims claims = Jwts.parser() .setSigningKey(secretKey) .parseClaimsJws(jwt) .getBody(); Long id = claims.get("id", Long.class); String username = claims.get("username", String.class); } }
生成JWT代码
于 2023-03-26 14:09:19 首次发布