编码与安全指南
JWT 验证:签名、有效期、签发方与受众
使用约定密钥验证 HS256,再单独校验声明,不能把解码或验签当作完整授权。
解码用于观察
无需密钥就能查看 header 和 payload,攻击者同样可以构造包含任意声明的可读载荷。
研究格式时使用合成 Token,不能因为解码 JSON 中出现角色或用户 ID 就接受授权。
header.payload.signature
Decoded claims are observations, not authorization.固定算法与密钥来源
应用必须限定约定算法并从可信来源取得密钥,不能由不可信 header 任意决定验证方式。
本站使用输入的共享密钥验证 HS256,不提供 RSA、ECDSA 或 OpenID Connect 密钥发现验证。
声明需要单独验证
签名有效说明该密钥认证通过,仍需按协议校验 issuer、audience、expiration、not-before。
JWT exp、nbf 使用 NumericDate 秒而非 JavaScript 毫秒,应约定小范围时钟容差,不能跳过时间校验。
验证失败路径
在实际认证库中测试错误密钥、篡改载荷、过期 Token 和错误受众,分别确认拒绝原因。
本站 HS256 结果只覆盖签名,完整声明校验和授权策略应保留在接收 Token 的服务中。