JWT简介
1. JWT基本概念
JWT(JSON Web Token):
- 全称:JSON Web Token
- 定义:一种简洁、自包含的格式,用于在通信双方之间以JSON数据格式安全地传输信息
- 可靠性:通过数字签名确保信息完整性和来源可信
2. JWT结构组成
JWT由三部分组成,用点(.)分隔:
2.1 Header(头部)
{"alg":"HS256","type":"JWT"}
- 作用:记录令牌类型和签名算法
- alg:签名算法(如HS256)
- type:令牌类型(JWT)
2.2 Payload(载荷)
{"id":"1","username":"Tom","iat":1516239022}
- 作用:携带自定义信息和默认信息
- 包含:用户ID、用户名、签发时间等
- iat:签发时间(Unix时间戳)
2.3 Signature(签名)
数字签名(header.payload, secret)
- 作用:防止Token被篡改,确保安全性
- 计算:Header和Payload经Base64编码后与密钥结合
3. JWT认证流程
场景:登录认证
流程步骤:
- 登录成功:生成JWT令牌
- 后续请求:每个请求都携带JWT令牌
- 统一拦截:系统在每次请求处理前先校验令牌
- 验证通过:处理请求并返回响应
工作流程:
浏览器 → 请求 → 统一拦截(校验)→ 有效 → 处理业务(login/depts/emps)→ 响应 → 浏览器
4. 核心特点
特性 | 说明 |
---|---|
自包含 | 令牌本身包含所有必要信息 |
无状态 | 服务器不需要存储会话信息 |
安全 | 通过数字签名防止篡改 |
跨域 | 支持跨域身份验证 |
标准化 | 基于JSON格式,易于解析 |
5. 简单总结
JWT本质:
- 一种安全传输信息的令牌格式
- 由Header.Payload.Signature三部分组成
- 通过数字签名确保安全性
认证流程:
- 用户登录 → 生成JWT → 后续请求携带JWT → 服务器验证JWT → 处理请求
核心价值:
- 实现无状态认证
- 支持跨域请求
- 提供统一拦截机制
- 确保信息安全传输
JWT是现代Web应用认证的重要技术,特别适合分布式系统和微服务架构!