<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.8.1</version>
</dependency>
package com.oasis.test;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTCreationException;
import com.auth0.jwt.exceptions.JWTVerificationException;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.oasis.App;
import java.util.Date;
public class TestJwt extends App {
public static void main(String[] args) {
/**
*
* basic test
*
* String create = createBasic();
logger.info(createBasic());
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
logger.info(decodeBasic(create));
*
*/
}
/**
* iss: The issuer of the token,token 是给谁的
sub: The subject of the token,token 主题
exp: Expiration Time。 token 过期时间,Unix 时间戳格式
iat: Issued At。 token 创建时间, Unix 时间戳格式
jti: JWT ID。针对当前 token 的唯一标识
* @return
*/
public static String createfull(){
//当前系统时间
long nowMillis = System. currentTimeMillis();
//token 在多少秒后过期 单位是毫秒
long expires = nowMillis + 18000 ;
try {
Algorithm algorithm = Algorithm.HMAC256("secret");
String token = JWT.create()
.withIssuer("auth0")
.withIssuedAt(new Date(nowMillis))
.withClaim("hello","hellovalue")
.withExpiresAt(new Date(expires))
.sign(algorithm);
return token ;
} catch (JWTCreationException exception){
//Invalid Signing configuration / Couldn't convert Claims.
exception.printStackTrace();
}
return null;
}
public static String createBasic(){
long nowMillis = System. currentTimeMillis();
long expires = nowMillis + 18000 ;
try {
Algorithm algorithm = Algorithm.HMAC256("secret");
String token = JWT.create()
.withIssuer("auth0")
.withClaim("hello","hellovalue")
.withExpiresAt(new Date(expires))
.sign(algorithm);
return token ;
} catch (JWTCreationException exception){
//Invalid Signing configuration / Couldn't convert Claims.
exception.printStackTrace();
}
return null;
}
public static String decodeBasic(String token){
try {
Algorithm algorithm = Algorithm.HMAC256("secret");
JWTVerifier verifier = JWT.require(algorithm)
.withIssuer("auth0")
.build(); //Reusable verifier instance
DecodedJWT jwt = verifier.verify(token);
return jwt.getClaim("hello").asString();
} catch (JWTVerificationException exception){
//Invalid signature/claims
exception.printStackTrace();
}
return null;
}
}