JWT(JSON Web Token)是一种用于 无状态认证 的轻量级令牌,广泛用于分布式系统、单页应用(SPA)和移动端登录。


JWT 结构概览

JWT 由 三部分组成,用 . 分隔:

xxxxx.yyyyy.zzzzz

  1. Header(头部)

  2. Payload(载荷)

  3. Signature(签名)


Header(头部)

  • 作用:声明 JWT 的类型和签名算法

{ "alg": "HS256", "typ": "JWT" }

  • alg:签名算法(如 HMAC SHA256)

  • typ:JWT 类型,固定值 "JWT"

头部告诉服务器如何去验证签名,是 JWT 的元信息


 Payload(载荷)

  • 作用:存储 用户信息和声明(Claims)

常见字段:

字段说明
sub主题(通常是用户 ID)
iat签发时间
exp过期时间
role用户角色或权限
自定义字段例如 username: "Alice"

注意:Payload 不加密,仅 Base64Url 编码,不能存储敏感信息


Signature(签名)

  • 作用:保证 JWT 安全性,是 JWT 的核心部分

(1) 防篡改(Integrity)

  • 确保 Header 和 Payload 未被篡改

  • 机制:

    1. 服务器生成 JWT 时,用密钥对 Header + Payload 计算签名

    2. 客户端传回 JWT,服务器重新计算签名

    3. 如果匹配 → 数据未被修改

(2) 验证身份(Authenticity)

  • 确保 JWT 确实由服务器签发

  • 客户端无法伪造合法签名,因为生成签名需要 服务器密钥

(3) 支持无状态认证(Stateless Authentication)

  • JWT 自带验证机制,服务器无需存储 Session

  • 非常适合 分布式系统、微服务架构

(4) 签名生成示意

Signature = HMACSHA256(base64UrlEncode(Header) + "." + base64UrlEncode(Payload),secret
)

举例说明一下,Header + Payload 是信件内容,Signature 是密封的签章,保证内容未被篡改且可信


小结

部分作用
Header指明类型和签名算法
Payload存放用户信息和声明(Claims)
Signature核心安全保障:

核心思想:JWT 是 自包含 + 可验证 的令牌,Signature 保证你可以信任客户端传回的内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/94431.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/94431.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/94431.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LangGraph

LangGraph 是由 LangChain 团队开发的开源框架,专为构建​​复杂、有状态、多主体(Multi-Agent)的 LLM 应用​​而设计。它通过​​图结构(Graph)​​ 组织工作流,支持循环逻辑、动态分支、状态持久化和人工…

STM32物联网项目---ESP8266微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制---MQTT篇(三)

一、前言本篇文章通过发送AT指令,与云平台建立通讯:1.创建云平台2.烧录AT固件3.MQTT订阅(本篇)4.单片机代码编写5.微信小程序(下载微信开发者工具即可使用)二、AT指令集介绍AT指令是一种文本序列&#xff0…

Apache Ozone 2.0.0集群部署

单机部署参考:Apache Ozone 介绍与部署使用(最新版2.0.0)-CSDN博客 安装部署 官方参考:Documentation for Apache Ozone 准备环境 环境准备参考:Linux环境下Hadoop3.4.0集群部署-CSDN博客 1->4-b 参考:Apache Ozone 介绍与部…

【计算机网络 | 第9篇】信道的极限容量

文章目录探秘信道的极限容量:从奈氏准则到香农定理一、信道极限容量的基本概念🤔二、奈氏准则:无噪声情况下的码元速率限制🐦‍🔥(一)带宽与信号传输的关系(二)码间串扰问…

深入理解Linux iptables防火墙:从核心概念到实战应用

一、概述:什么是iptables? 在Linux系统中,网络安全防护的核心工具之一便是iptables。它绝非一个简单的命令,而是一个功能强大的用户态工具,与Linux内核中的netfilter框架协同工作,共同构建了Linux的防火墙体…

WebRTC音频QoS方法一.1(NetEQ之音频网络延时DelayManager计算补充)

一、整体简介 NetEQ计算的网络延时,直接影响变速算法的决策。在变速算法里面启动关键的作用。 网络延时计算需要考虑两种情况: 1、单纯抖动的网络延时计算,在UnderrunOptimizer类中实现; 2、在丢包乱序场景下的网络延时计算。…

实时操作系统FreeRTOS移植到STM32VGT6

一、前言 下载平台:STM32F407VGT6 代码使用平台:VSCode 编译器:arm-none-aebi-gcc 程序下载工具:STlink 批处理工具:make 移植的FreeRTOS版本:V11.2.0 其实此方法并不局限在arm-none-aebi-gcc中,此方法对于Keil5也是可以使用的, 只不过复制的一些文件不同…

从线到机:AI 与多模态交互如何重塑 B 端与 App 界面设计

当下,界面设计已经不再是单纯的“画屏幕”。AI 的快速发展让我们不得不重新审视:交互和视觉究竟会走向什么样的未来?无论是移动端 App,还是复杂的 B 端产品,设计的核心都在于让界面更懂用户。本文尝试从三个角度切入&a…

【智能化解决方案】大模型智能推荐选型系统方案设计

大模型智能推荐选型系统方案设计0 背景1 问题分析与定义2 模型假设与简化3 核心模型构建3.1 决策变量与参数定义3.2 目标函数3.3 约束条件4 模型求解与验证4.1 求解策略4.2 验证方法4.3 模型迭代优化5 方案实施与系统设计5.1 系统架构设计5.2 工作流程5.3 关键算法实现5.4 时序…

【Java基础】HashMap、HashTable与HashSet:区别、联系与实践指南

Java中HashMap、HashTable与HashSet的深度解析:区别、联系与实践指南 引言 在Java集合框架中,HashMap、HashTable与HashSet是最常用的哈希型数据结构。它们因高效的查找、插入与删除性能(平均时间复杂度O(1)),广泛应用…

互联网大厂Java面试实战:核心技术栈与场景化提问解析(含Spring Boot、微服务、测试框架等)

互联网大厂Java面试实战:核心技术栈与场景化提问解析 本文通过模拟面试官与求职者谢飞机的对话,深入探讨互联网大厂Java开发的核心技术栈面试问题,涵盖Java SE、Spring生态、微服务、大数据等多个领域,结合音视频、电商、AIGC等业…

人工智能-python-深度学习-参数初始化与损失函数

文章目录参数初始化与损失函数一、参数初始化1. 固定值初始化1.1 全零初始化1.2 全1初始化1.3 任意常数初始化2. 随机初始化2.1 均匀分布初始化2.2 正态分布初始化3. Xavier初始化4. He初始化5. 总结二、损失函数1. 线性回归损失函数1.1 MAE(Mean Absolute Error&am…

Android Glide常见问题解决方案:从图片加载到内存优化

全面总结Glide使用中的典型问题与解决方案,助力提升应用性能与用户体验作为Android开发中最流行的图片加载库之一,Glide以其简单易用的API和强大的功能深受开发者喜爱。然而,在实际使用过程中,我们往往会遇到各种问题,…

linux系统ollama监听0.0.0.0:11434示例

docker应用如dify访问本地主机部署的ollama,base_url不管配"http://localhost:11434",还是"http://host_ip:11434"都会报错。这是因为1)docker容器访问http://localhost:11434,其实访问的是docker容器自身的服…

Java微服务AI集成指南:LangChain4j vs SpringAI

今天想再完善一下做的微服务项目,想着再接入一个人工客服,于是学习了一下langchan4j的内容,未完一、技术定位辨析:LangChain4j vs Spring AI vs OpenAIOpenAI:AI模型提供商 提供大语言模型API(如GPT-4o&…

华为光学设计面试题

16. 题目:设计一个用于机器视觉检测的光学系统时,如何保证在高速运动下成像的清晰度和稳定性?(出处:华为智能制造光学检测项目组招聘面试题)17. 题目:请说明在光学系统设计中,如何权衡景深和分辨率的关系&a…

vue3和react的异同点

这是一个前端领域非常核心的话题。Vue 3 和 React 都是极其优秀的现代前端框架,它们在理念和实现上既有相似之处,也有显著区别。 下面我将从多个维度详细对比它们的异同点。核心哲学与设计理念特性Vue 3React设计理念渐进式框架与 “救世主”声明式 UI 库…

assetbuddle hash 比对

1.测试 :当在预设上的数据有修改时,生成的ab也会有修改,具体到某个ab的.manifest里会有相应的变化,AssetFileHash 会修改 如图所示: ManifestFileVersion: 0 CRC: 2818930197 Hashes: AssetFileHash: serializedVersio…

Spring Boot `@Configuration` 与 `@Component` 笔记

Spring Boot Configuration 与 Component 笔记 1️⃣ 基本概念注解作用是否有代理适用场景Component标记普通组件,将类交给 Spring 容器管理❌ 没有 CGLIB 代理普通 Bean,工具类、过滤器、监听器等Configuration标记配置类,用来声明 Bean✅ 有…

二、JVM 入门——(三)栈

栈的定义 栈也是一块区域,用来存放数据的。栈也叫栈内存,主管Java程序的运行。 栈是私有的,是在线程创建时创建,所以它的生命期是跟随线程的生命期,线程结束栈内存也就释放。 因此对于栈来说不存在垃圾回收问题&…