JSON Web Token(JWT)是一种用于安全传输信息的开放标准。它可以用于认证和授权用户,以及在不同系统之间传输数据。在本文中,我们将介绍如何在 Java 中使用 jjwt 库来生成、解码和验证 JWT
引入 jjwt 库
首先,你需要在你的项目中引入 jjwt 库。如果你使用 Maven,可以在 pom.xml 中添加以下依赖:
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
生成 JWT
以下是使用 jjwt 验证 JWT 的示例代码:
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class JwtGenerator {
public static void main(String[] args) {
// 设置过期时间为 1 天
long expirationTime = System.currentTimeMillis() + 86400000;
String token = Jwts.builder()
.setSubject("user123") // 设置 subject
.setExpiration(new Date(expirationTime)) // 设置过期时间
.signWith(SignatureAlgorithm.HS256,"secret") // 设置签名
.compact();
System.out.println(token);
}
}
验证 JWT
以下是使用 jjwt 验证 JWT 的示例代码:
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureException;
public class JwtVerifier {
public static void main(String[] args) {
String token = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMTIzIiwiZXhwIjoxNjIwNzg3NzE3fQ.hXcJHdYvy3l0gI6HgNv6v-Tx_lL4FOWp65eGJ0YJtDk";
try {
Claims claims = Jwts.parser()
.setSigningKey("secret")
.parseClaimsJws(token)
.getBody();
System.out.println("Subject: " + claims.getSubject());
} catch (SignatureException e) {
System.out.println("Invalid token.");
}
}
}
在这个例子中,我们使用 parser() 方法解析 JWT,并使用 setSigningKey() 方法设置签名密钥。如果 JWT 验证成功,我们可以从 Claims 对象中获取 subject 值。
希望这篇文章能帮助你开始使用 jjwt 来生成、解码和验证 JWT。
原文地址:https://blog.csdn.net/weixin_45950955/article/details/130680076
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。