要解析JWT時,可以使用io.jsonwebtoken庫中的JwtParser類。下面是一個簡單的示例代碼來解析JWT:
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
import java.security.Key;
public class JwtParserExample {
public static void main(String[] args) {
String secret = "mySecretKey";
Key key = Keys.hmacShaKeyFor(secret.getBytes());
String jwt = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6MTYyNTE1Njg4MCwiZXhwIjoxNjI1MTU2ODgwfQ.Uk4z_s3BzuTtLvz5W0ePbP3ZVvQ3IjQ3g5N9OP5J5F0";
Claims claims = Jwts.parserBuilder()
.setSigningKey(key)
.build()
.parseClaimsJws(jwt)
.getBody();
String subject = claims.getSubject();
System.out.println("Subject: " + subject);
Long issuedAt = claims.getIssuedAt().getTime();
System.out.println("Issued At: " + issuedAt);
Long expiration = claims.getExpiration().getTime();
System.out.println("Expiration: " + expiration);
}
}
在上面的示例中,首先創建了一個密鑰,然后使用該密鑰解析JWT。通過調用parseClaimsJws
方法,可以獲取JWT中的聲明(claims),然后可以通過claims對象獲取JWT中的不同聲明內容,例如主題(subject)、簽發時間(issuedAt)和過期時間(expiration)。