任何人都能解码 JWT Header 和 Payload。只有使用预期配置完成密码学签名和 Claims 验证后,内容才可信。

01

读取 Header 与 Payload

查看 alg、kid、iss、aud、exp、nbf 等字段,但不要把它们当成真实身份。

header.payload.signature
02

固定允许的算法

不要接受不可信 Header 任意指定的算法,应配置明确白名单。

03

验证签名密钥

使用与预期签发方和 kid 对应的可信共享密钥或公钥。

04

验证 Claims

在服务端检查签发方、受众、过期时间、not-before 和业务授权。

要点总结
  • 解析出的 Claims 仍是不可信输入。
  • 固定算法与可信签发方。
  • 授权不能依赖浏览器解析。