生成JsonWebSignature 解析token的java代码
时间: 2024-03-17 13:46:26 浏览: 63
好的,以下是使用 Java jjwt 库生成 JsonWebSignature Token 和解析 Token 的代码示例:
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jws;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
import java.security.Key;
import java.util.Date;
public class JwtUtils {
// 生成 Token
public static String generateToken(String subject, long expireTimeInMilliseconds, String secretKey) {
// 生成签名密钥
Key key = Keys.hmacShaKeyFor(secretKey.getBytes());
// 设置过期时间
Date now = new Date();
Date expireTime = new Date(now.getTime() + expireTimeInMilliseconds);
// 生成 Token
String token = Jwts.builder()
.setSubject(subject)
.setExpiration(expireTime)
.signWith(key, SignatureAlgorithm.HS256)
.compact();
return token;
}
// 解析 Token
public static Claims parseToken(String token, String secretKey) {
// 生成签名密钥
Key key = Keys.hmacShaKeyFor(secretKey.getBytes());
// 解析 Token
Jws<Claims> jws = Jwts.parserBuilder()
.setSigningKey(key)
.build()
.parseClaimsJws(token);
// 获取 Token 中的 Claims
Claims claims = jws.getBody();
return claims;
}
}
```
在上述代码中,generateToken 方法用于生成 Token,其中需要传入 Token 的主题、过期时间和密钥。parseToken 方法用于解析 Token,其中需要传入 Token 和密钥。在实际应用中,我们需要根据具体的需求来设置 Token 的主题和过期时间,并使用安全的方式来存储和管理密钥。
阅读全文