jwt代码 java
时间: 2024-06-05 07:05:15 浏览: 119
Jwt参考代码
JWT(JSON Web Token)是一种用于安全地传输信息的开放标准。它可以通过数字签名验证消息的可靠性和完整性,从而保证数据在传输过程中不会被篡改。在Java中,我们可以使用一些开源库来处理JWT,比如jjwt、nimbus-jose-jwt等。
以下是一个使用jjwt库创建和解析JWT的示例代码:
创建JWT:
```java
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class JwtUtil {
private static final String SECRET_KEY = "mySecretKey"; // 用于生成签名的密钥
public static String generateToken(String subject, long expirationMillis) {
Date now = new Date();
Date expiration = new Date(now.getTime() + expirationMillis);
return Jwts.builder()
.setSubject(subject)
.setIssuedAt(now)
.setExpiration(expiration)
.signWith(SignatureAlgorithm.HS256, SECRET_KEY)
.compact();
}
}
```
解析JWT:
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
public class JwtUtil {
private static final String SECRET_KEY = "mySecretKey"; // 用于生成签名的密钥
public static String parseToken(String token) {
Claims claims = Jwts.parser()
.setSigningKey(SECRET_KEY)
.parseClaimsJws(token)
.getBody();
return claims.getSubject();
}
}
```
在上面的代码中,我们首先定义了一个SECRET_KEY作为生成签名的密钥。然后,我们使用Jwts.builder()方法创建一个JWT,设置了JWT的主题、发行时间和过期时间,并使用HS256算法生成签名。最后,我们使用Jwts.parser()方法来解析JWT,验证签名,并获取JWT中包含的主题信息。
阅读全文