Java里JWT的使用方法

简介

header

{
  'typ': 'JWT',
  'alg': 'HS256'
}

playload

{
  "sub": "1234567890",
  "name": "John Doe",
  "admin": true
}

java代码

            String str = Jwts.builder()
                        .setHeaderParam("typ", "JWT")
                        .setHeaderParam("alg", "HS256")
                        .claim("sub","1234567890")
                        .claim("name", "John Doe")
                        .claim("admin", true)
                        .signWith(SignatureAlgorithm.HS256, key.getBytes("UTF-8"))
                        .compact();
Java使用JWT (JSON Web Token)方法,可以通过引入Java JWT库来实现。以下是使用Java JWT库创建和验证JWT的步骤: 1. 添加Java JWT依赖项 在Maven项目中,在pom.xml文件中添加以下依赖项: ``` <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.18.1</version> </dependency> ``` 2. 创建JWT 使用以下代码创建JWT: ``` import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; import java.util.Date; String secret = "mySecret"; Algorithm algorithm = Algorithm.HMAC256(secret); String token = JWT.create() .withIssuer("myIssuer") .withSubject("mySubject") .withExpiresAt(new Date(System.currentTimeMillis() + 3600000)) .sign(algorithm); ``` 该代码将创建一个JWT,其中包含以下声明: - Issuer: JWT的签发者 - Subject: JWT的主题 - ExpiresAt: JWT的过期时间 3. 验证JWT 使用以下代码验证JWT: ``` import com.auth0.jwt.JWT; import com.auth0.jwt.JWTVerifier; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.exceptions.JWTVerificationException; String secret = "mySecret"; Algorithm algorithm = Algorithm.HMAC256(secret); JWTVerifier verifier = JWT.require(algorithm) .withIssuer("myIssuer") .withSubject("mySubject") .build(); try { verifier.verify(token); System.out.println("JWT is valid"); } catch (JWTVerificationException e) { System.out.println("JWT is invalid"); } ``` 该代码将验证JWT的签名和声明,如果JWT有效,则输出“JWT is valid”,否则输出“JWT is invalid”。 以上是使用Java JWT库创建和验证JWT方法。注意,在实际应用中,应该使用更复杂的算法和密钥来保护JWT的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值