jwtutil工具类使用
时间: 2023-11-10 21:01:20 浏览: 82
JwtUtil工具类主要用于生成和解析JWT Token。它包含了一些方法,如generateToken、parseToken等。generateToken方法用于生成Token,需要传入一些参数,如用户ID、过期时间等。parseToken方法用于解析Token,可以获取Token中的信息,如用户ID、过期时间等。
使用JwtUtil工具类的步骤如下:
1. 导入JwtUtil工具类。
2. 调用generateToken方法生成Token,传入相应的参数。例如:
String token = JwtUtil.generateToken(userId, expirationTime);
3. 调用parseToken方法解析Token,可以获取Token中的信息。例如:
String userId = JwtUtil.parseToken(token).get("userId");
相关问题
使用Hutool中的JwtUtil类验证token
好的,首先需要在项目中引入Hutool的依赖。可以在 Maven 中添加以下依赖:
```xml
<!-- Hutool工具类 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.10</version>
</dependency>
```
然后可以使用以下代码验证token:
```java
import cn.hutool.core.util.StrUtil;
import cn.hutool.jwt.JWT;
import cn.hutool.jwt.JWTException;
import cn.hutool.jwt.JWTUtil;
// token字符串
String token = "xxx.xxx.xxx";
try {
// 验证token
JWT jwt = JWTUtil.parse(token);
if (jwt.isExpired()) {
// token已过期
System.out.println("token已过期");
} else {
// 获取payload中的数据
String userId = jwt.getPayload("userId", String.class);
// ...其他操作
}
} catch (JWTException e) {
// token格式不正确或已失效
System.out.println("token无效");
}
```
其中,`JWTUtil.parse(token)` 方法用于解析 token,返回一个 `JWT` 对象。`jwt.isExpired()` 方法用于判断 token 是否已过期。如果 token 未过期,可以使用 `jwt.getPayload(key, clazz)` 方法获取 payload 中的数据。其中,`key` 是键名,`clazz` 是值类型。如果键名不存在或值类型不匹配,将会抛出异常。
java jwt 工具类
以下是一个使用Java JWT工具类的示例:
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class JwtUtils {
private static final String SECRET_KEY = "your-secret-key";
private static final long EXPIRATION_TIME = 3 * 1000L; // 3秒
public static String createJwt(Map<String, Object> claims) {
Date now = new Date();
Date expiration = new Date(now.getTime() + EXPIRATION_TIME);
return Jwts.builder()
.setClaims(claims)
.setIssuedAt(now)
.setExpiration(expiration)
.signWith(SignatureAlgorithm.HS256, SECRET_KEY)
.compact();
}
public static Claims parseJwt(String jwt) {
return Jwts.parser()
.setSigningKey(SECRET_KEY)
.parseClaimsJws(jwt)
.getBody();
}
}
public class Main {
public static void main(String[] args) {
// 创建JWT
Map<String, Object> claims = new HashMap<>();
claims.put("username", "zss");
String jwt = JwtUtils.createJwt(claims);
System.out.println(jwt);
// 解析JWT
Claims parseJwt = JwtUtils.parseJwt(jwt);
Date issuedAt = parseJwt.getIssuedAt();
Date expiration = parseJwt.getExpiration();
System.out.println("令牌签发时间:" + issuedAt);
System.out.println("令牌过期时间:" + expiration);
}
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)