最近开发中需要从jwt token中解析出数据,写了个类,验证通过
1、首先加入maven依赖:
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.2.0</version>
</dependency>
2、创建jwt工具类
import com.auth0.jwt.JWT;
import com.auth0.jwt.exceptions.JWTDecodeException;
import com.auth0.jwt.interfaces.DecodedJWT;
/**
* <p>Description: </p>
*
* @author dengfeng
* @date 2021/5/13
*/
public class JwtUtil {
/**
* 获取token中的信息无需secret解密也能获取
*
* @param token 密钥
* @return token中包含的用户名
*/
public static String getJwtString(String token,String key){
try {
DecodedJWT jwt= JWT.decode(token);
return jwt.getClaim(key).asString();
}catch (JWTDecodeException ex){
return null;
}
}
public static String getUuid(String token){
try {
DecodedJWT jwt= JWT.decode(token);
return jwt.getClaim("uuid").asString();
}catch (JWTDecodeException ex){
return null;
}
}
public static void main(String[] args) {
String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHQiOiIiLCJudW1lcmljSWQiOiIzNTkxMjE1IiwidXNlcl9uYW1lIjoiZjUxZGJiOWNlNTlhNDIwMmI3Mjk0NTM5OTgxMTEwZmM0YWE5MTkwMTI2NzM0YjA1YTkyMGM0Mjk5ZjI4YzZjNSIsInNjb3BlIjpbInJlYWQiXSwiYXRpIjoiZTM4YWU4MjktZTBmMi00ODJmLWI3NGQtYzA0NWNiMWVjYWYwIiwiZXhwIjoxNjIzMDU3ODk4LCJ1dWlkIjoiZjUxZGJiOWNlNTlhNDIwMmI3Mjk0NTM5OTgxMTEwZmM0YWE5MTkwMTI2NzM0YjA1YTkyMGM0Mjk5ZjI4YzZjNSIsImF1dGhvcml0aWVzIjpbIlJPTEVfVVNFUiJdLCJqdGkiOiI3M2NjNTYxZC1iNDY0LTQ1MmItOWMyZi05OGI2ZGM4MGJjMTEiLCJjbGllbnRfaWQiOiIwOTU4REQ1OTMyMThGNTZFIn0.rHRGb-sPt_nKkioB9K_gbS9dHJu9fhGWXcbxtV1JxVU";
System.out.println(getUserName(token));
}
}