JWT #

什么是 JWT? #

JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在各方之间安全地传输信息。它是一种紧凑的、URL 安全的方式,用于表示要在双方之间传输的声明(Claims)。

核心定位 #

text
┌─────────────────────────────────────────────────────────────┐
│                         JWT                                  │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  自包含      │  │  无状态      │  │  可验证      │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  跨语言      │  │  紧凑格式    │  │  安全传输    │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
└─────────────────────────────────────────────────────────────┘

JWT 解决的问题 #

传统 Session 的痛点 #

text
传统 Session 问题:

1. 服务端存储压力
   Session 存储在服务端
   用户多时内存压力大

2. 分布式困难
   多服务器需要共享 Session
   需要额外的存储系统

3. 跨域限制
   Cookie 有跨域限制
   移动端使用不便

JWT 的解决方案 #

text
JWT 解决方案:

✅ 无状态:服务端不需要存储
✅ 自包含:所有信息都在 Token 中
✅ 跨域友好:可放在 Header 或 URL 中
✅ 多端支持:Web、移动端、IoT 都可用

JWT 的应用场景 #

1. 身份认证 #

用户登录后获取 JWT,后续请求携带 Token 进行身份验证。

2. 授权 #

JWT 中包含用户角色和权限信息,服务端直接解析判断访问权限。

3. 单点登录(SSO) #

一次登录,多个应用共享认证状态。

4. 信息交换 #

服务间安全通信,签名保证数据完整性和真实性。

文档结构 #

text
JWT 文档
├── 基础入门
│   ├── JWT 简介
│   ├── JWT 结构
│   └── 基本使用
│
├── 进阶内容
│   ├── 签名算法
│   └── 安全最佳实践
│
└── 高级主题
    ├── 刷新机制
    └── 微服务认证

JWT vs Session #

特性 JWT Session
存储位置 客户端 服务端
状态 无状态 有状态
扩展性 天然支持分布式 需要 Session 共享
安全性 签名防篡改 服务端存储安全
注销 困难(需要黑名单) 容易
跨域 友好 需要特殊处理

学习路径 #

text
入门阶段
├── JWT 简介
├── JWT 结构详解
└── JWT 基本使用

进阶阶段
├── JWT 签名算法
├── JWT 安全最佳实践
└── JWT 高级主题

实战阶段
├── 多语言实现
├── 集成 OAuth 2.0
└── 微服务认证

下一步 #

现在你已经了解了 JWT 的基本概念,接下来学习 JWT 简介,深入了解 JWT 的详细原理!

最后更新:2026-03-29