用Java 写一个生成jwt令牌和解密的方法
时间: 2023-06-12 13:07:46 浏览: 98
好的,以下是一个使用Java编写的生成JWT令牌和解密的方法,需要使用到Java JWT库。
生成JWT令牌方法:
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class JwtUtils {
private static final String SECRET_KEY = "YOUR_SECRET_KEY";
public static String generateToken(String subject, long ttlMillis) {
Date now = new Date();
Date expirationDate = new Date(now.getTime() + ttlMillis);
return Jwts.builder()
.setSubject(subject)
.setIssuedAt(now)
.setExpiration(expirationDate)
.signWith(SignatureAlgorithm.HS256, SECRET_KEY)
.compact();
}
}
```
解密JWT令牌方法:
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
public class JwtUtils {
private static final String SECRET_KEY = "YOUR_SECRET_KEY";
public static Claims parseToken(String token) {
return Jwts.parser()
.setSigningKey(SECRET_KEY)
.parseClaimsJws(token)
.getBody();
}
}
```
需要注意的是,SECRET_KEY是用于签名的密钥,需要自己设置一个安全的密钥。同时,ttlMillis参数是令牌的过期时间,单位是毫秒。在实际应用中,需要根据业务需求进行设置。
阅读全文