package com.dsh.guns.modular.system.util;
|
|
import com.alibaba.fastjson.JSON;
|
import com.dsh.guns.modular.system.warpper.ParseToken;
|
import io.jsonwebtoken.*;
|
|
import java.nio.charset.StandardCharsets;
|
|
public class JWTTokenUtils {
|
|
private static final String SigningKey = "Bo3XdHukD8FE62ki";
|
|
/**
|
* 解析token
|
* @param token
|
* @return
|
*/
|
public static ParseToken parseToken(String token) throws TokenException {
|
//解析Token,获取Claims对象
|
Claims claims = null;
|
try {
|
claims = Jwts.parser()
|
.setSigningKey(SigningKey.getBytes(StandardCharsets.UTF_8))
|
.parseClaimsJws(token)
|
.getBody();
|
}catch (SignatureException e){//解析失败
|
throw new TokenException(10001, e.getMessage());
|
}catch (MalformedJwtException e){//无效的token
|
throw new TokenException(10002, "无效的票据");
|
}catch (ExpiredJwtException e){
|
throw new TokenException(10003, "票据已过期");
|
}catch (Exception e){
|
e.printStackTrace();
|
throw new TokenException(10010, e.getMessage());
|
}
|
String string = JSON.toJSONString(claims);
|
ParseToken parseToken = JSON.parseObject(string, ParseToken.class);
|
return parseToken;
|
}
|
|
}
|