第 2 课
JWT 声明
学习注册声明、公共声明和私有声明的区别。
JWT claims 是 payload 中的字段。它们描述 subject、issuer、audience、时间边界、权限,或应用自己定义的事实。
注册声明
注册声明有标准名称:
iss:issuer,Token 签发方sub:subject,通常是用户或服务标识aud:audience,Token 目标接收方exp:过期时间nbf:不早于此时间生效iat:签发时间jti:Token 标识
这些字段在 JWT 格式中是可选的,但很多真实系统会强制要求其中一部分。
公共声明与私有声明
公共声明适合跨系统共享命名。私有声明由你的服务之间约定,例如 role、tenantId、scope 或 permissions。
时间声明使用 Unix 秒
JWT 时间声明通常是 NumericDate,也就是 Unix epoch 以来的秒数。JavaScript 常用毫秒,所以常见错误是把秒级声明拿去和毫秒时间戳比较。
调试时,最好同时查看原始 Unix 值、UTC 时间和本地时间。