Spring Cloud Alibaba微服务实战二十一 - JWT增强
在Spring Cloud Alibaba微服务实战中,JWT(JSON Web Tokens)是一种常用的认证方式。以下是一个简化的JWT工具类实例,用于生成和验证JWT token。
import io.jsonwebtoken.*;
import java.util.Date;
public class JwtTokenUtil {
private static final String SECRET_KEY = "your_secret_key"; // 应该是一个复杂的密钥
public static String generateToken(String username) {
long now = System.currentTimeMillis();
Date expiryDate = new Date(now + 3600 * 1000); // 设置token有效期为1小时
return Jwts.builder()
.setIssuedAt(new Date(now))
.setSubject(username)
.setExpiration(expiryDate)
.signWith(SignatureAlgorithm.HS512, SECRET_KEY)
.compact();
}
public static boolean validateToken(String token, String username) {
try {
Claims claims = Jwts.parser()
.setSigningKey(SECRET_KEY)
.parseClaimsJws(token)
.getBody();
return claims.getSubject().equals(username) && !isTokenExpired(token);
} catch (Exception e) {
return false;
}
}
private static boolean isTokenExpired(String token) {
Claims claims = Jwts.parser()
.setSigningKey(SECRET_KEY)
.parseClaimsJws(token)
.getBody();
return claims.getExpiration().before(new Date());
}
}
这个工具类提供了生成JWT token和验证token是否有效的方法。generateToken
方法使用用户名作为subject生成一个token,并设置了有效期。validateToken
方法验证token是否有效,包括它是否过期以及它是否与指定的用户名相关联。
评论已关闭