昨天讲解了JWT的介绍、应用场景、优点及注意事项等,今天来个JWT具体的使用实践吧。
从JWT官网支持的类库来看,jjwt是Java支持的算法中最全的,推荐使用,网址如下。
下面来看看如何使用jjwt来实现JWT token的生成与解密,主要用到sha512算法来演示。
1、导入jjwt的maven包。
io.jsonwebtoken
jjwt
0.9.0
注意:JJWT依赖Jackson 2.x,低版本将报错。
2、建立一个JWTTest测试类。
3、创建密钥;
这里使用sha512算法,所以需要一个密钥。Key KEY = new SecretKeySpec("javastack".getBytes(),
SignatureAlgorithm.HS512.getJcaName());
这样就生成了一个固定的密钥:javastack
4、生成JWT token。
核心代码如下:Map stringObjectMap = new HashMap<>();
stringObjectMap.put("type", "1");String payload = "{\"user_id\":\"1341137\", \"expire_time\":\"2018-01-01 0:00:00\"}";String compactJws = Jwts.builder().setHeader(stringObjectMap)
.setPayload(payload).signWith(SignatureAlgor