JWT令牌简介及用法

Jwt令牌

简介

全称:JSON Web Token (jwt.io)

定义了一种简介、自包含的格式,用于在通信双方以json数据格式安全的传输信息,由于数字签名的存在这些信息是可靠的

组成

  • 第一部分:Header(头),记录令牌类型、签名算法等。例如:{ralg":"HS256","type":"JWT}
  • 第二部分:Payload(有效裁荷),携带一些自定义信息、默认信息等。例如:[rid":"1","username":"Tom}
  • 第三部分:Signature(签名),防止Token被篡改、确保安全性。将header、payload,并加入指定秘钥,通过指定签名算法计算而来。

登录认证

  1. 登录成功后,生成令牌
  2. 后续每个请求,都要携带JWT令牌,系统在每次请求处理之前,先校验令牌,通过后,再处理

maven坐标

java 复制代码
<dependency>
	<groupld>io.jsonwebtoken</groupld>
	<artifactld>jwt</artifactld>
	<version>0.9.1</version>
</dependency>

令牌生成

java 复制代码
@Test
public void genjwt(){
    Map<String,Object> claims = new HashMap<>();
    claims.put("id",1);
    claims.put("username","Tom");
    String jwt = jwts.builder()
        .setClaims(claims)//自定义内容
        .signWith(SignatureAlgorithm.HS256,"itheima")//数字签名
        .setExpiration(new Date(System.currentTimeMillis())+12*3600*100)//有效期
        .compact();
}

令牌校验

java 复制代码
@Test
public void parsejwt(){
    Claims claims = Jwts.parser()
        .setSigningKey("itheima")
        .parseClaimsjws(token)//需要解析的令牌
        .getBody()
}

注意

  • JWT校验时使用的签名秘钥,必须和生成WT令牌时使用的秘钥是配套的。
  • 如果JWT令牌解析校验时报错,则说明JWT令牌被纂改或失效了,令牌非法。
相关推荐
captain3761 小时前
Spring IoC和DI(2)
java·后端·spring
2501_933923252 小时前
SpringCloud组件:Nacos服务注册快速入门
后端·spring·spring cloud·nacos
小羊没烦恼!2 小时前
深入浅出SQL Server中的死锁
java·开发语言·前端·数据库·后端·spring·c#
小陈从不会敲代码3 小时前
JavaEE面试复习(多线程-初阶)
java·面试·java-ee
咖啡八杯3 小时前
Spring MessageSource 国际化消息解析流程
java·后端·spring·架构·框架·若依
博.闻广见4 小时前
第10篇:Agent系统的性能优化 —— 缓存、压缩与动态模型路由
java·人工智能·后端·spring·agent
杨运交5 小时前
080-缓存模块-Spring Cache缓存键前缀设计与租户隔离实践
java·spring·缓存
我命由我123455 小时前
5-2.Python 编码进阶 - 字符串进阶(拼接、普通格式化、普通格式化数字精度控制、快速格式化、遍历、常用方法)
java·开发语言·后端·python·学习·java-ee·学习方法
Java爱好狂.14 小时前
Java初学者如何一周速通SpringBoot!
java·spring boot·后端·spring·高并发·架构师·java面试
CoderYanger18 小时前
Java EE 进阶:4.Spring Web MVC 入门(第一弹)
java·开发语言·前端·spring·面试·java-ee·mvc