java-jwt-token-decode

2021-12-29  本文已影响0人  AlastairYuan
String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkJhZWxkdW5nIFVzZXIiLCJpYXQiOjE1MTYyMzkwMjJ9.qH7Zj_m3kY69kxhaQXTa-ivIpytKXXjZc1ZSmapZnGE";
String[] chunks = token.split("\\.");

Base64.Decoder decoder = Base64.getUrlDecoder();

String header = new String(decoder.decode(chunks[0]));
String payload = new String(decoder.decode(chunks[1]));

System.out.println(header);
//{"alg":"HS256","typ":"JWT"}
System.out.println(payload);
//{"sub":"1234567890","name":"Baeldung User","iat":1516239022}



<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.7.0</version>
</dependency>
// Configuring Signature Algorithm and Key Specification
SignatureAlgorithm sa = HS256;
SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey.getBytes(), sa.getJcaName());

//  Performing the Verification

String tokenWithoutSignature = chunks[0] + "." + chunks[1];
String signature = chunks[2];

DefaultJwtSignatureValidator validator = new DefaultJwtSignatureValidator(sa, secretKeySpec);

if (!validator.isValid(tokenWithoutSignature, signature)) {
    throw new Exception("Could not verify JWT token integrity!");
}

上一篇下一篇

猜你喜欢

热点阅读