jwt token Java17
时间: 2024-04-02 15:30:11 浏览: 107
JWT(JSON Web Token)是一种用于在网络应用间传递信息的安全方式。它由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。Java 17 是 Java 编程语言的最新版本,提供了许多新特性和改进。
在 Java 17 中,可以使用第三方库来生成和验证 JWT Token。常用的库包括 jjwt、Nimbus JOSE + JWT 和 Auth0 Java JWT 等。
下面是使用 jjwt 库生成和验证 JWT Token 的示例代码:
1. 添加依赖:
```xml
<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>
```
2. 生成 JWT Token:
```java
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
String secretKey = "yourSecretKey";
String token = Jwts.builder()
.setSubject("user123")
.signWith(SignatureAlgorithm.HS256, secretKey)
.compact();
```
3. 验证 JWT Token:
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
String token = "yourToken";
String secretKey = "yourSecretKey";
Claims claims = Jwts.parser()
.setSigningKey(secretKey)
.parseClaimsJws(token)
.getBody();
String subject = claims.getSubject();
```
请注意,上述代码中的 "yourSecretKey" 是用于签名和验证的密钥,可以根据实际情况进行替换。
阅读全文