当前位置: 首页 > news >正文

JWT(JSON Web Token)

目录

一 JWT简单介绍

二、JWT 的组成结构

1 Header(头部)

2 Payload(载荷)

三、JWT 工作原理


好文分享

session、cookie、token 详解_token session cookie-CSDN博客

一 JWT简单介绍

概念:是一种开放标准,用于在各方之间安全传输结构化JSON数据。通常用于省份验证和授权,通过数字签名确保数据的完整性和可信性,具有无状态,轻量级,跨域支持等特点。

JWT(JSON Web Token)在当今企业中被广泛采用,尤其是在无状态认证分布式系统场景中。其流行主要得益于其轻量级、跨平台兼容性和自包含特性。

通过数字签名的方式,以 JSON 对象为载体,在不同的服务器终端之间安全传输的信息。

作用:

最常见的场景就是授权认证,一旦用户认证,后续每个请求都将包含JWT,系统在么此处理用户请求之前,都先进行JWT安全校验,通过之后才继续进行处理

JWT就像是一个令牌,当我们去到一个公司,这个公司先会校验你的身份,校验成功就会给你发一个身份卡,以后再见面时,看见你的身份卡就知道你是不是公司的人,就不需要对你的省份继续宁身份认证。你有这个JWT的信息,服务器直接就可以知道你,不用反复查询数据库获取,并且一旦篡改立马就可以发现。

二、JWT 的组成结构

JWT 由三部分组成,格式为 Header.Payload.Signature,各部分通过 . 分隔,均采用 Base64Url 编码。

1 Header(头部)

作用:声明令牌类型(typ)和签名算法(alg)

实例:

{
  "alg": "HS256",  // 签名算法(如HMAC、RSA等)
  "typ": "JWT"      // 固定值
}

2 Payload(载荷)

作用:携带信息

实例:

{
  "sub": "user123",         // 主题(用户ID)
  "name": "Alice",
  "exp": 1717040000         // 过期时间戳
}

3 Signature(签名)

作用:验证令牌是否被篡改,由前两部分编码后的字符串通过指定算法生成。

生成公式:

HMACSHA256(
  base64UrlEncode(header) + "." + base64UrlEncode(payload),
  secret_key
)

三、JWT 工作原理

  1. 生成令牌

    • 用户登录成功后,服务器生成 JWT,包含用户信息和签名,返回给客户端。

  2. 传递令牌

    • 客户端将 JWT 存储在 Cookie 或 Authorization 请求头中,随后续请求发送给服务器。

  3. 验证令牌

    • 服务器收到 JWT 后:

      1. 解码 Header 和 Payload:获取算法和用户数据。

      2. 验证签名:使用相同算法和密钥重新计算签名,比对是否一致。

      3. 检查有效性:如过期时间、签发者等是否符合要求。

http://www.dtcms.com/a/106896.html

相关文章:

  • Spring AI Alibaba 快速开发生成式 Java AI 应用
  • 每日总结4.2
  • 深入理解Python asyncio:从入门到实战,掌握异步编程精髓
  • 为什么你涨不了粉?赚不到技术圈的钱?
  • 教务系统ER图
  • 大模预测法洛四联症的全方位研究报告
  • 特征融合后通道维度增加,卷积层和线性层两种降维方式
  • Ubuntu交叉编译器工具链安装
  • SpringBoot集成OAuth2.0
  • [MySQL初阶]MySQL数据库基础
  • jdk21新特性详解使用总结
  • TypeScript extends 全面解析
  • work02_1 计算这两个日期之间相隔的天数
  • 手机改了IP地址,定位位置会改变吗?
  • Java面试黄金宝典29
  • 蓝桥备赛指南(13):填空签到题(1-1)
  • 车辆控制解决方案
  • 如何通过安当TDE透明加密实现MySQL数据库加密与解密:应用免改造,字段与整库加密全解析
  • MySQL主从复制(四)
  • WEB安全--文件上传漏洞--其他绕过方式
  • OpenLayers:封装Overlay的方法
  • WASM I/O 2025 | MoonBit获Kotlin核心开发,Golem Cloud CEO高度评价
  • 人工智能赋能管理系统,如何实现智能化决策?
  • 操作系统(中断 异常 陷阱) ─── linux第28课
  • 脑影像分析软件推荐 | JuSpace
  • 【kubernetes】pod拉取镜像的策略
  • 关于SQL子查询的使用策略
  • ​自动化网络架构搜索(Neural Architecture Search,NAS)
  • RNN模型与NLP应用——(9/9)Self-Attention(自注意力机制)
  • 1Panel 面板 宝塔面板 Ubuntu 24.04