中文开发者指南
JWT 解码和验签有什么区别?
说明 JWT decode 与 verify 的根本区别,帮助开发者正确理解 Header、Payload、Signature、exp、iat 和 aud 等字段。
核心要点
解码只是看懂 JWT 内容;验签才是判断 token 是否可信、是否被篡改、是否来自预期签发方的安全动作。
建议先用脱敏样例理解概念,再把结论带回自己的接口、日志或配置环境中验证。工具输出可以帮助定位问题,但不应替代服务端校验、安全审查或项目上下文判断。
使用前检查
在相关工具里操作前
- 先确认输入是否为脱敏样例,而不是生产密钥、Token、客户数据或密码。
- 先理解字段单位、编码格式或安全边界,再把结果用于接口联调。
- 需要安全判断时,把最终校验放在可信服务端,而不是只依赖浏览器端显示。
1
Decode 只能读取内容
JWT 的 Header 和 Payload 通常是 Base64URL 编码的 JSON。解码后可以看到 alg、typ、sub、exp、iat、scope 等字段。
但解码本身不证明 token 真实、有效或未被篡改。任何人都可以构造一个看起来像 JWT 的字符串。
2
Verify 才是安全校验
验签需要服务端使用正确的密钥或公钥检查 Signature,并验证 issuer、audience、过期时间和算法白名单。
生产系统不能只信任浏览器里解码出来的字段。权限判断必须在可信服务端完成。
- 检查签名。
- 检查 exp / nbf / iat。
- 检查 iss / aud。
- 拒绝不符合预期的 alg。
3
安全建议
不要在公开场合粘贴真实生产 JWT。JWT payload 往往只是编码,不是加密,可能包含用户 ID、邮箱、权限或租户信息。
使用工具时请优先用本地开发 token、示例 token 或脱敏 token。