java如何使用jwt生成token
时间: 2023-09-12 14:09:37 浏览: 186
在Java中,可以使用com.auth0库来实现JWT的生成和验证。首先,你需要在你的项目中添加该库的依赖:
```xml
<!--JWT-->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>
```
接下来,你可以使用以下代码创建一个JWT的token:
```java
String token = JWTUtils.createToken(1L);
```
请注意,在上面的例子中,我将token的过期时间设置为10秒。
接下来,如果你想验证token并获取其中的信息,你可以使用以下代码:
```java
try {
Map<String, Claim> stringClaimMap = JWTUtils.verifyToken(token);
Long id = stringClaimMap.get("id").asLong();
System.err.println("用户id是:" + id);
} catch (Exception e) {
e.printStackTrace();
}
```
上面的代码会尝试验证token,并从中获取id这个字段的值。如果token已经过期,会抛出TokenExpiredException异常。
为了处理token过期的情况,你可以使用以下代码:
```java
try {
// 上面的token被我设置成了10秒过期
Thread.sleep(11000L);
JWTUtils.verifyToken(token); // 这里定向捕获登录过期异常
} catch (TokenExpiredException e) {
// 写过期逻辑
System.err.println("登录过期");
} catch (Exception e) {
e.printStackTrace();
}
```
上面的代码会捕获TokenExpiredException异常,你可以在此处编写处理过期逻辑。
最后,你可以使用以下代码来验证token和获取其中的信息:
```java
public static Map<String, Claim> verifyToken(String token) throws Exception {
JWTVerifier verifier = JWT.require(Algorithm.HMAC256(SECRET)).build();
DecodedJWT jwt = verifier.verify(token);
return jwt.getClaims();
}
```
上面的代码会使用之前设置的密钥来验证token,并返回包含token中所有声明的Map。
这样,你就可以在Java中使用JWT生成token了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [JWT介绍及用JAVA使用JWT生成token](https://blog.csdn.net/weixin_43085439/article/details/105838751)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文