import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
import javax.crypto.SecretKey;
public class JwtExample {
// 生成JWT Token
public static String createToken(String subject) {
SecretKey key = Keys.secretKeyFor(SignatureAlgorithm.HS256); // 创建密钥
String compactJws = Jwts.builder()
.setSubject(subject) // 设置主题(通常是用户ID或用户名)
.signWith(key) // 使用密钥进行签名
.compact(); // 生成紧凑的JWT字符串
return compactJws;
}
// 验证JWT Token
public static boolean validateToken(String token, SecretKey key) {
try {
Jwts.parserBuilder()
.setSigningKey(key) // 设置用于验证的密钥
.build()
.parseClaimsJws(token); // 解析并验证JWT
return true;
} catch (Exception e) {
return false; // 如果解析失败,返回false
}
}
public static void main(String[] args) {
String subject = "user123";
SecretKey key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
// 创建Token
String token = createToken(subject);
System.out.println("Generated JWT: " + token);
// 验证Token
boolean isValid = validateToken(token, key);
System.out.println("Is JWT valid? " + isValid);
}
}
创建JWT Token:
createToken
方法使用 Jwts.builder()
来构建一个JWT,并设置主题(通常是用户ID或用户名),然后使用 signWith
方法和密钥进行签名,最后通过 compact()
方法生成紧凑的JWT字符串。验证JWT Token:
validateToken
方法使用 Jwts.parserBuilder()
来解析和验证JWT。它会检查签名是否有效,并返回一个布尔值表示验证结果。主函数:
main
方法中,首先创建了一个JWT Token,然后打印出来。接着,调用 validateToken
方法来验证这个Token,并打印验证结果。你需要在项目中添加 jjwt
库的依赖,例如在Maven项目中可以添加以下依赖:
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.2</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.11.2</version>
<scope>runtime</scope>
</dependency>
上一篇:java super
下一篇:java object转map
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站