尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
理解 JWT:三段分别是什么
JWTJSON Web Token是一种把声明claims编码成可传递字符串的方式常见形态是三段用点号连接的 Base64URL 文本。登录成功后前端把一长串xxxxx.yyyyy.zzzzz塞进请求头后端验过就认你是谁。资料里又是签名、加密、鉴权、会话读完仍常不清楚三段各自是干什么的以及它到底防什么。下面按结构拆开讲。一、先说一个具体麻烦接口要求Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMifQ.signature有人以为这段字符串是加密的用户看不懂所以安全。也有人以为只要有 JWT就不用 HTTPS也不用管注销。两种想法都容易出事。JWT 默认常常是可解码可读、靠签名防篡改不是保险箱它也不是完整的会话产品方案。二、核心思路明信片 火漆印简单说常见的签名型 JWT 更像一张明信片1正面写着你的声明谁、什么角色、何时过期——路人可能读得到2火漆印证明「内容没被改过且来自持有密钥的一方」3没火漆或火漆对不上接收方直接拒绝所以 JWT 解决的核心问题是在分布式服务之间传递一份可验证的声明而不必每次都回中心会话库查同一张表具体架构仍可选择有状态黑名单等那是附加设计。三、三段分别是什么标准 JWT 长这样header.payload.signature3.1 Header头部描述元数据常见是 JSON再 Base64URL 编码。{alg:HS256,typ:JWT}上面代码中alg说明签名算法typ说明类型。接收方要按约定算法校验不能盲目信任头部里「声称」的算法而不做白名单约束历史上有算法混淆类问题工程上需按安全实践配置。3.2 Payload载荷放声明。仍是 JSON再 Base64URL 编码。常见字段1sub主体常是用户 id2iat/exp签发时间 / 过期时间3iss/aud签发者 / 受众4自定义声明角色、租户 id 等注意默认不是加密。任何人拿到 token都能解码 payload 看内容。别把密码、身份证号一类敏感数据塞进去。3.3 Signature签名用密钥或私钥对「编码后的 header payload」计算签名防止篡改。直觉公式HMAC 类signature HMAC_SHA256( base64url(header) . base64url(payload), secret )上面结构中改 payload 里的role却不重算合法签名校验就会失败。这就是「火漆印」的作用。四、一次典型校验流程A用户登录认证服务签发 JWTB客户端存储怎么存是另一话题内存、HttpOnly Cookie 等各有取舍C请求业务 API 时带上DAPI 验签名、查exp、查iss/aud等E通过则按声明授权失败则 401验签通过只说明「声明未被篡改且来自可信签发方」。不自动等于「用户此刻仍应拥有全部权限」——权限回收、强制下线需要额外机制。五、JWT 不解决什么1保密性默认可读要保密需走加密型方案JWE或根本别放敏感字段2传输安全仍要 HTTPS否则 token 会被窃听3自动注销未过期的 token在纯无状态模型下仍有效要作废需黑名单、短过期 刷新令牌、或改密钥版本等4替代授权设计有 token ≠ 权限模型正确仍要做对象级授权检查六、实践上几条最小建议1payload 只放必要声明控制体积2设合理exp长会话用刷新令牌旋转而不是超长 access token3校验时核对算法、签发者、受众、过期时间4密钥用足够强度的随机值并支持轮换5日志里不要完整打印 token下面是一个解码示意仅理解结构生产请用成熟库验签。const[h,p]token.split(.)constpayloadJSON.parse(Buffer.from(p,base64url).toString())console.log(payload.sub,payload.exp)上面代码中只演示「payload 可读」。缺少签名校验的代码不能当鉴权。七、常见误区1把 Base64 当成加密编码 ≠ 加密。2存在 localStorage 就以为万事大吉XSS 可偷 token。存储位置要和威胁模型一起选。3算法写none或乱信任 header.alg等于摘掉火漆印。4token 过长塞进一堆权限快照难轮换、难更新也更容易泄露面变大。5401 与 403 分不清token 无效/过期偏 401token 有效但无权限偏 403。八、小结JWT 三段里Header 说明怎么验Payload 装声明Signature 防篡改。它擅长传递可验证的身份与声明不擅长当加密容器也不自动提供完善的会话注销。把三段职责分清后面的安全讨论才有共同语言。完
RELATED

相关推荐

【花雕动手做】多功能微型步进电机驱动板 控制板 2相4线 4相5线减速步进电机DIY

【花雕动手做】多功能微型步进电机驱动板 控制板 2相4线 4相5线减速步进电机DIY

多功能微型步进电机驱动控制板 这是一款一体化步进电机驱动控制板,无需单片机编程,通过拨帽跳线、电位器、按键即可直接实现步进电机调速、点动、自动往返等动作,支持2 相 4 线、4 相 5 线两类常见步进电机,适合 DIY 装置、实验平…

📅 2026/10/14 19:02:47
ICLR 2020 | NAS‑Bench‑201:拓展可复现神经架构搜索的研究范围

ICLR 2020 | NAS‑Bench‑201:拓展可复现神经架构搜索的研究范围

ICLR 2020 | NAS‑Bench‑201:拓展可复现神经架构搜索的研究范围01 论文信息02 论文主要贡献03 基准设计详解3.1 搜索空间架构宏观网络骨架待搜索 Cell 单元3.2 数据集与划分3.3 训练配置与评测指标3.4 诊断信息04 实验分析4.1 搜索空间系统性分析架构整体性能概览跨…

📅 2026/10/11 3:03:23
开学季买什么好?开学季必入好物,大学生开学季好物大全不踩坑

开学季买什么好?开学季必入好物,大学生开学季好物大全不踩坑

​开学季马上到来,不少学生和老师都开始提前准备新学期需要用到的物品。每年这个时候,“开学要买什么”“开学必备物品有哪些”“学生开学需要准备什么”等问题都会受到关注。面对各种各样的学习用品、生活用品和实用工具,很多人在购买时都会…

📅 2026/10/14 19:46:59
MORE NEWS

更多资讯

📰

BTF与CO-RE实战:从二进制格式到可移植eBPF

1. 先把 BTF 这件事说清楚:它到底在解决什么问题 前段时间排查一个采集程序的加载失败,日志里一行字很扎眼: libbpf: prog trace_open: relo #0: field file.f_path.dentry not found in target 。编译机上的内核和运行节点上的内核不是同一…

📰

SQL统计查询与嵌套查询实验:聚合分组、连接子查询避坑

简介:数据库实验5嵌套查询.doc 面向高校数据库课程学习者,是一份围绕 SELECT 统计查询、常用统计函数、连接查询与嵌套查询四个层级组织的实验报告,可用于课堂实验提交、期末复习与 SQL 语法自查。压缩包内含 1 个 doc 文件,约 64…

📰

CPXS数据库实验:统计查询、分组过滤与嵌套子查询四层方案

简介:《数据库实验5嵌套查询》是一份面向数据库课程学习者与实验课教师的实验报告文档,围绕 SELECT 统计查询、常用统计函数、连接查询与嵌套查询展开,帮助读者理解多表检索、子查询、派生表及相关谓词的使用场景。文档以 CPXS 数据库为操作对…

📰

SQL嵌套查询入门:SELECT、子查询、连接查询与报错排查

简介:面向数据库课程学习者与实验教学场景的《数据库实验5嵌套查询》实验报告文档,聚焦SELECT统计查询、聚合函数与嵌套查询的实操训练,适合课后复盘、实验提交和语法查漏补缺,并配有实验目的、内容与思考模块。压缩包内共1个doc文…

📰

数据库实验5嵌套查询:统计函数、连接查询与子查询避坑指南

简介:这份文档面向数据库课程学习者,聚焦数据统计查询与嵌套查询的实验训练,可用于高校数据库原理课程实验复盘、SQL语句对照练习和查询思路梳理。内容围绕CPXS数据库展开,先交代掌握SELECT统计查询、COUNT/SUM/MAX/MIN等主要函数…

📰

CDFS光盘文件系统复制提取与镜像归档避坑指南

上周帮朋友整理一箱旧光盘,插进光驱后,资源管理器里那个盘符的属性写着“文件系统:CDFS”。他本来只想把里面的照片和文档复制出来,结果拖到一半弹出“无法读取源文件或磁盘”,整盘卡住不动。这个场景太典型了&#xf…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬