超简单的jwt验证token,直接复制粘贴即可使用!
一、添加依赖
<!-- jwt加密 -->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.14.0</version>
</dependency>
二、新建一个TokenUtil.class工具类
package com.example.springboot.utils;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import java.util.Calendar;
import java.util.HashMap;
/**
* JWT token加解密工具类
*/
public class TokenUtils {
private static String key = "jweijo1231ojiSDJOIA23Ssdii";// 密钥签名
private static Integer end_day = 7;// 密钥过期天数
/**
* token加密
* @param id 账号
* @return
*/
public static String signToken(String id){
HashMap<String, Object> map = new HashMap<>();
// 指定令牌的过期时间,这里是【7天】后令牌token失效
Calendar instance = Calendar.getInstance();
instance.add(Calendar.DAY_OF_WEEK, end_day);
// 生成token
String token = JWT.create()
.withHeader(map) // header可以不写,因为默认值就是它
.withClaim("user", id) //payload
.withExpiresAt(instance.getTime()) // 指定令牌的过期时间
.sign(Algorithm.HMAC256(key));//签名
return token;
}
/**
* 验证token合法性
* @param token
* @return
*/
public static DecodedJWT verify(String token) {
return JWT.require(Algorithm.HMAC256(key)).build().verify(token);
}
/**
* 获取token真实内容
* @param token
* @return
*/
public static DecodedJWT getTokenInfo(String token){
DecodedJWT verify = JWT.require(Algorithm.HMAC256(key)).build().verify(token);
return verify;
}
}