JWT的介绍和使用

JWT ==> JSON WEB TOKEN

jwt由三部分组成

头 + 负载 + 签名

头部基本默认
{

"alg": "HS256",

"typ": "JWT"

} 

负载是是JWT的主体内容部分
一般自定义字段 传递有效信息,但是不要包含太过私密的信息

密码自定义  指定一个密码
签名生成 => HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload),secret)

签名格式 base64位的 头.负载.签名  中间以‘.‘隔开

jwt使用

1. 引入依赖
  <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.18.1</version>
        </dependency>

2. 生产token
  通过JWT的静态方法JWT.create()生成
  .withClaim("xx","xx")  自定义负载信息
  .withExpiresAt(xx)  设置过期时间
  .sign(Algorithm.HMAC256("密码"))  设置签名
   返回值就是token的值

3. 根据签名和令牌解析数据
   DecodedJWT decodedJWT = JWT.require(Algorithm.HMAC256("密码")).build().verify(token);
   decodedJWT.getClaim("属性").asString()  获取负载中的属性值
   decodedJWT.getxxx  有一系列方法可以使用

JWT的介绍和使用

上一篇:9.10 python


下一篇:2021.09.10 【ABAP随笔】-BTP-简单的iflow调用OP的OData服务