10,11,12代码均在 tlias
登录:
本质是查询
登陆前还需要校验:统一拦截
登录校验:会话技术
对比:
cookie:
session:
令牌技术:重点
JWT令牌:
生成方法:
导入爆红依赖配置
没有jar包自动导入,1.下载jar包 2.在Maven运行语句 3.重新输入依赖刷新--> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency>
mvn install:install-file
-Dfile=D:\JJWTjar\jwt-3.1.11.jar\jjwt-0.9.1.jar
-DgroupId=io.jsonwebtoken
-DartifactId=jjwt
-Dversion=0.9.1
-Dpackaging=jar
代码:
//得到加密密文 @Test public void testGetJwt(){ Map<String,Object> claims = new HashMap<>(); claims.put("id",1); claims.put("name","Tom"); String jwt = Jwts.builder().signWith(SignatureAlgorithm.HS256,"xiaochaijinwanhengaoxing") //签名算法 .setClaims(claims) //自定义内容 .setExpiration(new Date(System.currentTimeMillis()+3600*1000))//设置有效期 .compact(); System.out.println(jwt); } //解析 @Test public void testParseJwt(){ Claims claims= Jwts.parser() .setSigningKey("xiaochaijinwanhengaoxing") .parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiVG9tIiwiaWQiOjEsImV4cCI6MTcwMTAxMDc3Nn0.e6u-8lZWM928II8V3rWqr9Xa2Zt4QmyczrAihGRE9Wk") .getBody(); System.out.println(claims); }