JWT工具类

引入依赖

<dependency>
    <groupId>com.auth0</groupId>
    <artifactId>java-jwt</artifactId>
    <version>3.11.0</version>
</dependency>

代码如下:

@Slf4j
public class JWTUtil{

    //签发人
    private static final String ISSUER = "issuer";
    //过期时间
    private static final long EXPIRE_TIME = 5*60*1000;
    //密钥
    private static final String SECRET_KEY = "secret_key";
    //权限变量名
    private static final String USER_NAME = "username";

    //生成token
    public static String token(String username) {
        Algorithm key = Algorithm.HMAC256(SECRET_KEY);
        Date now = new Date();
        String token = JWT.create()
                                .withIssuer(ISSUER)
                                .withIssuedAt(now)
                                .withExpiresAt(new Date(now.getTime()+EXPIRE_TIME))
                                .withClaim(USER_NAME,username)
                                .sign(key);
        log.info("generated token user={}",username);
        return token;
    }

    
    public static boolean verify(String token) {
        try{
            Algorithm key = Algorithm.HMAC256(SECRET_KEY);
            JWTVerifier verifier = JWT.require(key)
                                    .withIssuer(ISSUER)
                                    .build();
            verifier.verify(token);
            return true;
        }catch(Exception e) {
            e.printStackTrace();
        }
        return false;
    }
}

测试类如下:

@SpringBootTest
public class JWTUtilTest{
    @Test
    public void testJWTUtil() {
        String token = JWTUtil.token("userone");
        System.out.println(token);

        boolean b = JWTUtil.verify(token);
        System.out.println(b);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值