JWT.create() 与 JWT.builder有什么区别
时间: 2024-06-17 11:04:31 浏览: 126
JWT是一种用于身份验证的轻量级的JSON Web Token。在Java中,我们可以使用jjwt库来创建和验证JWT。
JWT.create()和JWT.builder()都是jjwt库中用于创建JWT的方法,它们之间的区别在于:
- JWT.create()方法创建的是一个不可变的JWT实例,即创建后不能对其进行修改。而JWT.builder()方法创建的是一个可变的JWT Builder实例,我们可以通过设置不同的参数来修改这个Builder实例,最终构建出不同的JWT实例。
- JWT.create()方法创建的JWT实例是默认使用HS256算法进行签名的,如果需要使用其他算法进行签名,则需要使用JWT.builder()方法,并通过调用其setAlgorithm()方法设置算法。
例如,下面是使用JWT.create()方法创建JWT的示例代码:
```
String token = JWT.create()
.withIssuer("auth0")
.withSubject("subject")
.withExpiresAt(new Date(System.currentTimeMillis() + 86400000))
.sign(Algorithm.HMAC256("secret"));
```
而下面是使用JWT.builder()方法创建JWT的示例代码:
```
String token = JWT.builder()
.withIssuer("auth0")
.withSubject("subject")
.withExpiresAt(new Date(System.currentTimeMillis() + 86400000))
.sign(Algorithm.HMAC256("secret"));
```
阅读全文