jwt

JTW的使用

引入依赖

      <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.0</version>
        </dependency>

加密

//设置过期时间
private long time=1000*60*60*24;
    //签名信息
    private String signatrue="admin";
    @Test
    public void test1(){
        JwtBuilder jwtBuilder = Jwts.builder();
        //header信息
        HashMap<String, Object> headerMap = new HashMap<>();
        headerMap.put("typ","JWT");
        headerMap.put("alg","HS256");
        //payload信息
        HashMap<String, Object> payloadMap = new HashMap<>();
        payloadMap.put("username", "tom");
        payloadMap.put("role", "admin");
        String jwtToken = jwtBuilder
                //header
                .setHeaderParams(headerMap)
                //payload
                .setClaims(payloadMap)
                //主题
                .setSubject("admin-test")
                //有效时间
                .setExpiration(new Date(System.currentTimeMillis() + time))
                //id
                .setId(UUID.randomUUID().toString())
                //signature
                .signWith(SignatureAlgorithm.HS256,signatrue)
                //拼接
                .compact();
        System.out.println(jwtToken);
    }

解密

 @Test
    public void parse(){
        //jwtToken
        String token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbi10ZXN0Iiwicm9sZSI6ImFkbWluIiwiZXhwIjoxNjY4MTQ4NTY1LCJqdGkiOiIwZDBlYzcwMy0xYWJhLTQyNmQtYjYwOS0zZTk3NDc1NGNiMGUiLCJ1c2VybmFtZSI6InRvbSJ9.eqN-rH2F80JCK01Hj2PeGmwx1LMr6pJOF1_SUuaAfgo";
        JwtParser jwtParser=Jwts.parser();
        Jws<Claims> claimsJws = jwtParser.setSigningKey(signatrue).parseClaimsJws(token);
        Claims claims = claimsJws.getBody();
        System.out.println(claims.get("username"));
        System.out.println(claims.get("role"));
        System.out.println(claims.getId());
        System.out.println(claims.getExpiration());
        System.out.println(claims.getSubject());
    }
posted @ 2022-11-14 11:01  与否业务NOW  阅读(68)  评论(0)    收藏  举报