JWT生成token
阿新 • • 發佈:2021-10-14
引入依賴:
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>
生成token程式碼:
public static void main(String[] args) throws IOException { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.SECOND, 90); HashMap<String, Object> map = new HashMap<>(); String sign = JWT.create().withHeader(map).withClaim("username", "name").withClaim("authority", "admin").withExpiresAt(calendar.getTime()).sign(Algorithm.HMAC256("VcXsdn!AG#R#a+d@asda&*HJKASD")); System.out.println(sign); }
工具類:
public class JWTUtils { private static final String SALT = "ASD$123*X7m"; public static String getToken(Map<String, String> map) { JWTCreator.Builder builder = JWT.create(); map.forEach((k, v) -> { builder.withClaim(k, v); }); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MINUTE, 2); builder.withExpiresAt(calendar.getTime()); return builder.sign(Algorithm.HMAC256(SALT)); } public static DecodedJWT verify(String token) { JWTVerifier verifier = JWT.require(Algorithm.HMAC256(SALT)).build(); return verifier.verify(token); } }