简单封装JWTUtils实现对token的创建和过期时间检查

想要使用jwt需要先导入依赖

<!-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt -->
<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>
</dependency>

封装类如下所示

 1 package com.huoziqi.springboot.utils;
 2 
 3 /**
 4  * @version 1.0
 5  * @Author 作者名
 6  * @Date 2022/8/13 10:19
 7  */
 8 
 9 import io.jsonwebtoken.Jwt;
10 import io.jsonwebtoken.JwtBuilder;
11 import io.jsonwebtoken.Jwts;
12 import io.jsonwebtoken.SignatureAlgorithm;
13 
14 import java.util.Date;
15 import java.util.HashMap;
16 import java.util.Map;
17 
18 /**
19  * JsonWebToken
20  * 该工具类用来创建token 和验证token
21  *
22  * 将用户id转换成token信息传到前端
23  * 在访问路径是会对token进行验证
24  * 判断是否正处于登录状态
25  */
26 public class JWTUtils {
27 
28     /**
29      * 三部分组成
30      */
31     //密钥
32     private static final String jwtToken = "123456huoziqi!@#$$";
33 
34     /**
35      * 生成token
36      * @param userId
37      * @return
38      */
39     public static String createToken(Long userId){
40         Map<String,Object> claims = new HashMap<>();
41         claims.put("userId",userId);
42 
43         JwtBuilder jwtBuilder = Jwts.builder()
44                 .signWith(SignatureAlgorithm.HS256, jwtToken) // 签发算法,秘钥为jwtToken
45                 .setClaims(claims) // body数据,要唯一,自行设置
46                 .setIssuedAt(new Date()) // 设置签发时间
47                 .setExpiration(new Date(System.currentTimeMillis() + 24 * 60 * 60 * 60 * 1000));// token过期时间
48         //生成最终加密后的token
49         String token = jwtBuilder.compact();
50         return token;
51     }
52 
53     /**
54      * 解析token
55      * @param token
56      * @return
57      */
58     public static Map<String, Object> checkToken(String token){
59         try {
60             Jwt parse = Jwts.parser().setSigningKey(jwtToken).parse(token);
61             return (Map<String, Object>) parse.getBody();
62         }catch (Exception e){
63             e.printStackTrace();
64         }
65         return null;
66 
67     }
68 
69     public static void main(String[] args) {
70         String token = createToken(1l);
71 
72         System.out.println(token);
73         System.out.println();
74         System.out.println();
75         Map<String, Object> map = checkToken(token);
76         Integer o = (Integer) map.get("userId");
77         System.out.println(map.get("userId"));
78         System.out.println(o);
79     }
80 
81 }

 

posted on 2023-05-21 17:24  你就学个JVAV?  阅读(376)  评论(0)    收藏  举报

导航