java jwt token 解析
时间: 2023-08-28 19:07:46 浏览: 197
在 Java 中解析 JWT Token 可以使用以下步骤:
1. 导入所需的包:
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwt;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;
```
2. 获取到 Token 字符串。
```java
String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
```
3. 使用 Secret Key 对 Token 进行解码。
```java
String secretKey = "mySecretKey";
Jwt jwt = Jwts.parserBuilder()
.setSigningKey(Keys.hmacShaKeyFor(secretKey.getBytes()))
.build()
.parse(token);
```
4. 获取 Token 中的 payload。
```java
Claims claims = (Claims) jwt.getBody();
String username = claims.getSubject();
```
完整代码:
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwt;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;
public class JwtUtils {
public static void main(String[] args) {
String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
String secretKey = "mySecretKey";
Jwt jwt = Jwts.parserBuilder()
.setSigningKey(Keys.hmacShaKeyFor(secretKey.getBytes()))
.build()
.parse(token);
Claims claims = (Claims) jwt.getBody();
String username = claims.getSubject();
System.out.println("Username: " + username);
}
}
```
阅读全文