springboot使用jjwt
时间: 2024-04-22 17:19:47 浏览: 182
Spring Boot是一个用于创建独立的、基于Spring的应用程序的框架。它简化了Spring应用程序的开发过程,提供了自动配置和约定优于配置的原则。而JWT(JSON Web Token)是一种用于身份验证和授权的开放标准,它可以在客户端和服务器之间全地传输信息。
在Spring Boot中使用JJWT(Java JWT)库可以方便地实现JWT的生成和验证。下面是使用JJWT实现JWT的基本步骤:
1. 添加依赖:在项目的pom.xml文件中添加JJWT的依赖。
```xml
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
```
2. 创建JWT工具类:创建一个JWTUtil类,用于生成和解析JWT。
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class JWTUtil {
private static final String SECRET_KEY = "your-secret-key";
private static final long EXPIRATION_TIME = 86400000; // 24小时
public static String generateToken(String username) {
Date now = new Date();
Date expirationDate = new Date(now.getTime() + EXPIRATION_TIME);
return Jwts.builder()
.setSubject(username)
.setIssuedAt(now)
.setExpiration(expirationDate)
.signWith(SignatureAlgorithm.HS256, SECRET_KEY)
.compact();
}
public static String getUsernameFromToken(String token) {
Claims claims = Jwts.parser()
.setSigningKey(SECRET_KEY)
.parseClaimsJws(token)
.getBody();
return claims.getSubject();
}
public static boolean validateToken(String token) {
try {
Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token);
return true;
} catch (Exception e) {
return false;
}
}
}
```
3. 使用JWT:在需要生成和验证JWT的地方调用JWTUtil类的方法。
生成JWT:
```java
String token = JWTUtil.generateToken("username");
```
解析JWT:
```java
String username = JWTUtil.getUsernameFromToken(token);
```
验证JWT:
```java
boolean isValid = JWTUtil.validateToken(token);
```
这样就可以在Spring Boot应用程序中使用JJWT来实现JWT的生成和验证了。
阅读全文