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