第 2 课

JWT 声明

学习注册声明、公共声明和私有声明的区别。

JWT claims 是 payload 中的字段。它们描述 subject、issuer、audience、时间边界、权限,或应用自己定义的事实。

注册声明

注册声明有标准名称:

  • iss:issuer,Token 签发方
  • sub:subject,通常是用户或服务标识
  • aud:audience,Token 目标接收方
  • exp:过期时间
  • nbf:不早于此时间生效
  • iat:签发时间
  • jti:Token 标识

这些字段在 JWT 格式中是可选的,但很多真实系统会强制要求其中一部分。

公共声明与私有声明

公共声明适合跨系统共享命名。私有声明由你的服务之间约定,例如 roletenantIdscopepermissions

时间声明使用 Unix 秒

JWT 时间声明通常是 NumericDate,也就是 Unix epoch 以来的秒数。JavaScript 常用毫秒,所以常见错误是把秒级声明拿去和毫秒时间戳比较。

调试时,最好同时查看原始 Unix 值、UTC 时间和本地时间。

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

打开相关工具

返回课程概览