37.token过期校验
创建带失效时间的token
/**
* @Title testCreateTokenHasExp
* @Description TODO 创建token(带失效时间)
* @Author admin
* @UpdateTime 2022/3/4 17:21
* @Throws
*/
@Test
public void testCreateTokenHasExp() {
// 获取当前系统时间
long now = System.currentTimeMillis();
// 设置过期时间:2分钟
long exp = now + 120 * 1000;
// 创建JwtBuilder对象
JwtBuilder jwtBuilder = Jwts.builder()
// 声明的标识{"jti":"8888"}
.setId("8888")
// 主体,用户(所面向的接收客户){"sub":"Rose"}
.setSubject("Rose")
// 设置签发时间 创建日期("ita":"年月日")
.setIssuedAt(new Date())
// 设置签名(算法,加盐)
.signWith(SignatureAlgorithm.HS256,"xxxx")
// 设置失效过期时间
.setExpiration(new Date(exp));
// 获取生成jwt令牌
String token = jwtBuilder.compact();
System.out.println(token);
System.out.println("==================");
// 分割字符.
String[] split = token.split("\\.");
// 分割第一部分:头部信息
System.out.println(Base64Codec.BASE64.decodeToString(split[0]));
// 分割第二部分:荷载信息
System.out.println(Base64Codec.BASE64.decodeToString(split[1]));
// 分割第三部分:签名信息 注:签名信息有加盐,无法解密 会形成乱码
System.out.println(Base64Codec.BASE64.decodeToString(split[2]));
}
解析带失效时间的token
/**
* @Title testParseTokenHasExp
* @Description TODO 解析token(带失效时间)
* @Author admin
* @UpdateTime 2022/3/4 17:21
* @Throws
*/
@Test
public void testParseTokenHasExp(){
String token="eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI4ODg4Iiwic3ViIjoiUm9zZSIsImlhdCI6MTY0NjM4NTUyMSwiZXhwIjoxNjQ2Mzg1NjQxfQ.t92lJhxqS714y7eTRzrKGCV1j4S_uArxRey8WrNUmHg";
// 解析token 获取负载中声明的对象
Claims claims = Jwts.parser()
// 准备加盐秘钥
.setSigningKey("xxxx")
// 提供token
.parseClaimsJws(token)
// 添加主体
.getBody();
// 打印输出声明对象
System.out.println("id:"+claims.getId());
System.out.println("subject:"+claims.getSubject());
System.out.println("issuedAt:"+claims.getIssuedAt());
// 格式化时间
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("签发时间:"+simpleDateFormat.format(claims.getIssuedAt()));
System.out.println("过期时间:"+simpleDateFormat.format(claims.getExpiration()));
System.out.println("当前时间:"+simpleDateFormat.format(new Date()));
}
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Eternal Night
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果