第 4 课

常见 JWT 错误

避免常见的 JSON Web Token 验证和处理问题。

JWT 问题常来自把紧凑 Token 当成已经可信的会话记录。格式本身很简单,但验证规则非常重要。

信任解码后的 payload

payload 是可读 JSON。任何人都能构造一个看起来像 Token 的字符串并放入任意字段。不能因为解码后看到 admin: true 或熟悉的 sub 就授予权限。

忽略 audience 和 issuer

发给一个 API 的 Token 不应自动适用于另一个 API。应按身份提供方和服务边界校验 issaud

接受意外算法

应用只应允许预期算法。算法混淆问题通常发生在验证器接受 header 中改变验证方式的算法值。

错误处理过期时间

检查 exp 时要使用秒,不要和毫秒混用。还需要决定系统允许多大的时钟偏差,特别是在分布式服务之间。

泄漏 Token

JWT 常常是 bearer credential。谁拿到 Token,谁就可能在它过期或被撤销前代表 subject 行动。避免把 Token 放入日志、截图、Issue 或分析事件。

想动手练习时,可使用 DevCove 相关工具——可选,不属于本课正文。

打开相关工具

返回课程概览