利用hutool生成和验证JWT的示例

5 篇文章 0 订阅

利用hutool生成和验证JWT的示例

简介

利用hutool工具类生成json-web-token

  • hutool-all在5.7以上的版本才支持jwt

    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.7.13</version>
    </dependency>
    

注意事项

  • key默认是按HS256(HmacSHA256)

  • 失效/生效时间校验

示例Code

JwtTest.java

package com.sedaier.calcdir.test;

import java.util.HashMap;
import java.util.Map;

import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.jwt.JWTPayload;
import cn.hutool.jwt.JWTUtil;

public class JwtTest {

	public static void main(String[] args) {
		DateTime now = DateTime.now();
		DateTime newTime = now.offsetNew(DateField.MINUTE, 10);
		
		Map<String,Object> payload = new HashMap<String,Object>();
		//签发时间
		payload.put(JWTPayload.ISSUED_AT, now);
		//过期时间
		payload.put(JWTPayload.EXPIRES_AT, newTime);
		//生效时间
		payload.put(JWTPayload.NOT_BEFORE, now);
		//载荷
		payload.put("userName", "zhangsan");
		payload.put("passWord", "666889");
		
		String key = "aabb";
		String token = JWTUtil.createToken(payload, key.getBytes());
		System.out.println(token);
	}

}

JwtVerify.java

package com.sedaier.calcdir.test;

import cn.hutool.jwt.JWT;
import cn.hutool.jwt.JWTUtil;

public class JwtVerify {

	public static void main(String[] args) {
		String key = "aabb";
		String token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXNzV29yZCI6IjY2Njg4OSIsIm5iZiI6MTYzNTE1MDI3NiwiZXhwIjoxNjM1MTUwODc2LCJ1c2VyTmFtZSI6InpoYW5nc2FuIiwiaWF0IjoxNjM1MTUwMjc2fQ.Cq2AHyrZ-Q7U7O5BBPdEIBrm7aDtjQh4ZDvtIcLzQvg";
		JWT jwt = JWTUtil.parseToken(token);
		
		boolean verifyKey = jwt.setKey(key.getBytes()).verify();
		System.out.println(verifyKey);
		
		boolean verifyTime = jwt.validate(0);
		System.out.println(verifyTime);
	}

}
  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值