第 1 课
什么是 JWT
理解紧凑 JWT 格式,以及开发者在哪些地方会遇到它。
JSON Web Token 通常简称 JWT,是一种用于在系统之间携带 JSON 声明的紧凑字符串。你常会在 API 请求、浏览器存储、Cookie、OAuth 流程和服务间认证中看到它。
三段结构
紧凑 JWT 由三段组成,中间用点号分隔:
header.payload.signature
- header 描述 Token 类型和签名算法。
- payload 包含 claims,也就是 Token 携带的事实。
- signature 让验证方在拥有正确密钥和规则时检测篡改。
前两段是 Base64URL 编码的 JSON。这说明它们便于传输,但不是为了隐藏内容。
JWT 是可读的
任何拿到 Token 字符串的人都可以解码 header 和 payload。因此,不应把敏感秘密直接放进 JWT payload,除非你使用了额外的加密机制。
JWT 的价值在于紧凑
JWT 适合放在 HTTP header 中,也方便分布式系统在不查询中心会话库的情况下验证。便利性也会带来风险:如果应用跳过验证或信任了错误的声明,就可能产生安全问题。