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.Claim;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.sxapp.commons.exception.SXException;
import com.sxapp.commons.exception.SXExceptionEnum;
import org.joda.time.DateTime;
public class JwtUtil {
private final static String SECRET = "324iu23094u598ndsofhsiufhaf_+0wq-42q421jiosadiusadiasd";
public static String createToken(long uid) {
Algorithm algorithm = Algorithm.HMAC256(SECRET);
String token;
try {
token = JWT.create()
.withIssuer("withissuer")
.withExpiresAt(DateTime.now().plusHours(1).toDate())
.withClaim("uid", uid)
.sign(algorithm);
return token;
} catch (JWTCreationException e) {
throw new SXException(500, e.getMessage());
}
}
public static long verifyToken(String token) {
DecodedJWT verify;
try {
Algorithm algorithm = Algorithm.HMAC256(SECRET);
JWTVerifier jwtVerifier = JWT.require(algorithm)
.withIssuer("withissuer")
.build();
verify = jwtVerifier.verify(token);
Claim uid = verify.getClaim("uid");
return uid.asLong();
} catch (JWTVerificationException e) {
throw new SXException(SXExceptionEnum.JWT_PARSE_ERROR);
}
}
}