JWT入门使用

概念

JWT入门使用
JWT入门使用
JWT入门使用
alg为使用的加密算法
JWT入门使用
该部分储存主要信息
第三部分为签名 知道就好。

入门使用

导入依赖

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

实现加密

private long time=1000*60*60*24;
    private String signature="admin";
    @Test
    public void jwt(){
        JwtBuilder jwtBuilder= Jwts.builder();
        String jwtToken=jwtBuilder
                //header
                .setHeaderParam("typ","JWT")
                .setHeaderParam("alg","HS256")
                //payload
                .claim("username","tom")
                //设置主题
                .setSubject("admin-test")
                //设置有效时间 到达该时间时token失去效果
                .setExpiration(new Date(System.currentTimeMillis()+time))
                //设置ID
                .setId(UUID.randomUUID().toString())
                //签名 signature
                .signWith(SignatureAlgorithm.HS256,signature)
                //调用拼接方法 拼接三个部分
                .compact();
        System.out.println(jwtToken);
    }

结果生成了一大堆字母说明成功了!
JWT入门使用

实现解密

 @Test
    public void parse(){
        //对应你上面的结果
        String toke="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6InRvbSIsInN1YiI6ImFkbWluLXRlc3QiLCJleHAiOjE2Mjk3OTYxNjEsImp0aSI6Ijk0ZGU2OWU3LTY4OTgtNDBiNC1iMjRlLWI2NWU1MjJlMDZmMiJ9.CYWJxDzZM9ivW2tDxTwHEvQkw2y9hSx8N7SwEV5Ny48";
        JwtParser jwtParser=Jwts.parser();
        //进行解密
        Jws<Claims> claimsJws = jwtParser.setSigningKey(signature).parseClaimsJws(toke);
        //获取主体内容 主体内容包含封装的数据
        Claims body = claimsJws.getBody();
        //获得各种信息。
        System.out.println(body.get("username"));
        System.out.println(body.getId());
        System.out.println(body.getSubject());
    }

结果 成功解出信息
JWT入门使用

JWT入门使用

上一篇:easyExcel合并数据导出(一对多)


下一篇:全code进行qt界面简单设计的体验与感受