解析JWT時(shí)io.jsonwebtoken怎么用

小樊
143
2024-06-15 17:13:48
欄目: 編程語言

要解析JWT時(shí),可以使用io.jsonwebtoken庫(kù)中的JwtParser類。下面是一個(gè)簡(jiǎn)單的示例代碼來解析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);
    }
}

在上面的示例中,首先創(chuàng)建了一個(gè)密鑰,然后使用該密鑰解析JWT。通過調(diào)用parseClaimsJws方法,可以獲取JWT中的聲明(claims),然后可以通過claims對(duì)象獲取JWT中的不同聲明內(nèi)容,例如主題(subject)、簽發(fā)時(shí)間(issuedAt)和過期時(shí)間(expiration)。

0