第 4 课
常见 JWT 错误
避免常见的 JSON Web Token 验证和处理问题。
JWT 问题常来自把紧凑 Token 当成已经可信的会话记录。格式本身很简单,但验证规则非常重要。
信任解码后的 payload
payload 是可读 JSON。任何人都能构造一个看起来像 Token 的字符串并放入任意字段。不能因为解码后看到 admin: true 或熟悉的 sub 就授予权限。
忽略 audience 和 issuer
发给一个 API 的 Token 不应自动适用于另一个 API。应按身份提供方和服务边界校验 iss 与 aud。
接受意外算法
应用只应允许预期算法。算法混淆问题通常发生在验证器接受 header 中改变验证方式的算法值。
错误处理过期时间
检查 exp 时要使用秒,不要和毫秒混用。还需要决定系统允许多大的时钟偏差,特别是在分布式服务之间。
泄漏 Token
JWT 常常是 bearer credential。谁拿到 Token,谁就可能在它过期或被撤销前代表 subject 行动。避免把 Token 放入日志、截图、Issue 或分析事件。