Springboot整合JWT封装工具类篇(二)

前言:这里是将Springboot整合JWT测试篇(一)封装成工具类

public class JWTUtils {
  //秘钥自己保管好
    private static String SECRET = "token!Q@W3e4r";
    /**
     * 生成token
     * @param map  //传入payload
     * @return 返回token
     */
    public static String getToken(Map<String,String> map){
        JWTCreator.Builder builder = JWT.create();
        map.forEach((k,v)->{
            builder.withClaim(k,v);
        });
        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.DATE,3);//默认3天过期

        builder.withExpiresAt(instance.getTime());//指定过期时间
        return builder.sign(Algorithm.HMAC256(SECRET));
    }
    
    /**
     * 验证token
     * @param token
     * @return
     */
    public static DecodedJWT verify(String token){
     // 有任何验证异常,此处都会抛出
        return JWT.require(Algorithm.HMAC256(SECRET)).build().verify(token);  
    }
    
    /**
     * 获取token中payload数据
     * @param token
     * @return
     */
    public static Map<String, Claim> getPayloadFromToken(String token) {
        return    JWT.require(Algorithm.HMAC256(SECRET)).build().verify(token).getClaims();
    }
    
}

 

posted @ 2023-02-21 11:17  向大海  阅读(119)  评论(0编辑  收藏  举报