JWT java代码实现
时间: 2023-11-07 10:08:54 浏览: 15
jwt token 实现
3星 · 编辑精心推荐
JWT(JSON Web Token)是一种用于身份验证和授权的开放标准。下面是使用Java实现JWT的示例代码:
首先,你需要引入以下库:
```
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
```
然后,你可以使用以下代码来创建和验证JWT:
```java
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class JwtUtils {
private static final String SECRET = "mySecretKey";
private static final long EXPIRATION_TIME = 864_000_000; // 10 days
public static String generateToken(String username) {
return Jwts.builder()
.setSubject(username)
.setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME))
.signWith(SignatureAlgorithm.HS512, SECRET)
.compact();
}
public static boolean validateToken(String token) {
try {
Jwts.parser().setSigningKey(SECRET).parseClaimsJws(token);
return true;
} catch (Exception e) {
return false;
}
}
public static String getUsernameFromToken(String token) {
Claims claims = Jwts.parser().setSigningKey(SECRET).parseClaimsJws(token).getBody();
return claims.getSubject();
}
}
```
在上面的代码中,`generateToken`方法用于生成JWT,`validateToken`方法用于验证JWT,`getUsernameFromToken`方法用于从JWT中获取用户名。`SECRET`是用于生成签名的密钥,`EXPIRATION_TIME`是JWT的过期时间。
要生成JWT,只需要调用`generateToken`方法并传入用户名即可。要验证JWT,只需调用`validateToken`方法并传入JWT即可。要从JWT中获取用户名,只需调用`getUsernameFromToken`方法并传入JWT即可。
请注意,这只是JWT的一个简单示例,实际实现可能会更复杂,具体取决于你的具体需求。
阅读全文