JWT是什么?——从概念到结构的快速拆解
JSON Web Token(JWT)是一种基于 JSON 的 Token 方案,常用于 身份认证 与 信息交换。它由三段 Base64Url 编码的字符串组成:Header、Payload、Signature,用点号 . 连接。
JWT 的核心优势在于 无状态、跨域友好,以及可以在前端直接读取 payload 内容进行业务判断。
结构细节
| 部分 | 作用 | 典型字段 |
|---|---|---|
| Header | 声明 token 类型及签名算法 | alg、typ |
| Payload | 携带业务数据(claims) | sub、exp、iat、nbf、aud、custom claim |
| Signature | 防篡改校验 | HMACSHA256、RS256 等 |
实战:使用在线工具和 Python 完成 JWT 解析
下面以 JWT 在线解析 为例,展示如何快速获取 token 的 Header 与 Payload 信息。
步骤概览
- 打开在线解析页面,粘贴你的 JWT。
- 点击「解析」按钮,即可看到解码后的 JSON。
- 若需要验证签名,可在页面提供的
Secret输入框中填入密钥。
在实际项目中,往往需要在后端进行同样的解析与校验。下面给出一个简洁的 Python 示例,演示如何使用 PyJWT 完成 JWT 解码 与 校验:
import jwt
# 示例 JWT(请替换为真实 token)
token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTYiLCJleHAiOjE3MDU2MDAwMDAsImlhdCI6MTY5OTk5OTk5OX0.5K4YVJZz8X3aGzKk9lXU5tQ9V6A7c3W2tV5l2Z8Y9sU"
# 服务器端密钥(HS256 场景)
secret = "your-secret-key"
# 解码并校验 token(若签名不匹配或已过期会抛异常)
try:
payload = jwt.decode(token, secret, algorithms=["HS256"])
print("✅ Payload:", payload)
except jwt.ExpiredSignatureError:
print("⚠️ Token 已过期")
except jwt.InvalidTokenError as e:
print("❌ Invalid token:", e)
上述代码展示了三个关键点:
- 使用
jwt.decode同时完成 解码 与 签名校验。 - 捕获
ExpiredSignatureError以处理 token 失效 场景。 - 通过异常捕获确保 非法 token 不会导致系统崩溃。
注意:在生产环境请务必使用 HTTPS,避免 token 在网络传输中被窃取;同时,不要在前端硬编码 secret,所有签名校验应在后端完成。
结合在线解析工具与后端代码,你可以快速完成 JWT 解析、解密(若使用对称加密)以及 TOKEN 验证,为业务系统提供可靠的身份鉴权。