基本使用
JSON Web token简称JWT, 使用 JWTS 的应用程序不再需要保存有关其用户的 cookie 或其他session数据。此特性便于可伸缩性, 同时保证应用程序的安全
格式:
- JWT就是一个字符串,经过加密处理与校验处理的字符串,形式为:A.B.C
- A由JWT头部信息header加密得到
- B由JWT用到的身份验证信息json数据加密得到
- C由A和B加密得到,是校验部分

依赖
<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency>
package com.example;import io.jsonwebtoken.*;import org.junit.jupiter.api.Test;import org.springframework.boot.test.context.SpringBootTest;import java.util.Date;import java.util.HashMap;import java.util.Map;@SpringBootTestclass ApplicationTests {@Testvoid testCreateToken() {//生成token//1. 数据准备Map map = new HashMap();map.put("id","1");map.put("mobile","18081037301");//2. 使用JWT的工具类生成tokenlong now = System.currentTimeMillis();String token = Jwts.builder().signWith(SignatureAlgorithm.HS512, "itcast") //指定加密算法.setClaims(map) //写入数据.setExpiration(new Date(now + 50000)) //失效时间.compact();System.out.println(token);}@Testpublic void testParseToken(){//解析tokenString token = "eyJhbGciOiJIUzUxMiJ9.eyJ"+"tb2JpbGUiOiIxODA4MTAzNzMwMSIsImlkIjoiMSIsI"+" mV4cCI6MTY1NTMwMTg3MX0.FEuh2Oit2nET0v4hhmV-q"+"aYE9rxpRCk3Sskw4az66zHHjd_KCORqLPfTqFPTli7rG_9"+"CBIHsKXOZ0I3_UEDEKg";try {Claims claims = Jwts.parser().setSigningKey("itcast").parseClaimsJws(token).getBody();Object id = claims.get("id");Object mobile = claims.get("mobile");System.out.println(id+"--"+mobile);}catch (ExpiredJwtException e){System.out.println("token已过期");}catch (SignatureException e){System.out.println("token不合法");}}}
