Springboot中使用JWT

一、下载引用
  1. maven引用
    截止当前事件2021-02-04最新版本3.9.0
    <dependency>
    	<groupId>com.auth0</groupId>
    	<artifactId>java-jwt</artifactId>
    	<version>3.9.0</version>
    </dependency>
    
二、jwt是什么

JWT(JSON WEB TOKEN)共有三部分组成:标头.负载.签名
1.标头(Header)
2.有效负载(Payload)
3.签名(Signature)

在这里插入图片描述

  1. 我们执行这段生成了神秘数字

    String jwt = JWT.create()  //标头
    	.withClaim("username", "王二麻子")  //有效负载
    	.withExpiresAt(new Date(System.currentTimeMillis()+60000)) //设置一分钟的过期时间
    	.sign(Algorithm.HMAC256("secret"));  //签名
    
  2. 把这段数字拿去解析
    解析网页打不开,
    解析后可以看到输入的username

  3. 使用Java代码完成解析
    在这里插入图片描述

    JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256("secret")).build();
    DecodedJWT decodedJWT = jwtVerifier.verify("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6IueOi-S6jOm6u-WtkCJ9.Q71pvsTR5TYFePJFIMLvCbO8MGnQ0oiSJNCuSs1JiM4");
    String payload = decodedJWT.getPayload();
    System.out.println("负载:" + payload);
    System.out.println("标头:" + decodedJWT.getHeader());
    System.out.println("签名:" + decodedJWT.getSignature());
    System.out.println("------");
    Map<String, Claim> payloads = decodedJWT.getClaims();
    payloads.forEach((k,v)-> System.out.println( k + ":" + v.asString()));
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值