JWT简单使用

首先我们要知道什么是jwt?
JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的,
用处:
比如我们可以将它用来授权,我们登陆用户后,我们将我们的用户名密码都存入jwt中,我们得到该jwt,后续我们需要时,可以传入jwt,当我们需要该数据时,我们可以解析该jwt,将我们需要的数据全部解析出来,而且jwt的数据量很小,传输速度十分的快。

JWT的结构
1、标头(Header)
2、有效载荷(payload)
3、签名(Signature)
通常展示为xxxxx.yyyyy.zzzzz Header.Payload.Signature

先引入jwt的依赖

<dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.4.0</version>
        </dependency>

我们先创建一个测试类

@Test
    void contextLoads() {
        //令牌的生成,获取
        HashMap<String,Object> map =new HashMap<>();
        Calendar instance =Calendar.getInstance();
        instance.add(Calendar.SECOND,500);//从现在开始五十秒
        String token =JWT.create()
                .withHeader(map) //header
                .withClaim("userId",21)  //payload
                .withClaim("username","小陈")
                .withExpiresAt(instance.getTime()) //指定令牌的过期时间;
                .sign(Algorithm.HMAC256("!Q@W#E$R")); //签名,引号里面随便写的
        System.out.println("令牌生成成功:"+ token);
    }

我们解析我们的jwt

 @Test
    void test(){
        //创建验证对象
        JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256("!Q@W#E$R")).build();//签名方式要一致
        DecodedJWT verify = jwtVerifier.verify("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1OTk5OTEzNjAsInVzZXJJZCI6MjEsInVzZXJuYW1lIjoi5bCP6ZmIIn0.o91OkDwiXyr3KuOiW70Yx85rjeeVuj1sxzUsg2pMba8");//DecodedJWT 解码后的jwt

        System.out.println(verify.getClaim("username").asString());
        System.out.println(verify.getExpiresAt());
    }

这就是简单的一个jwt的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值